******,:,;;::;:,::::++*+;;;;+*+*+++;;;+**+******#######**###########**#########################################################################################
*+*+;::;;;;::::;+++++++++++;+++++++++++*++++*******#####**#*###################################################################################################
*+;,;;:,,,,,:;+*****+++;;+++;+++;+++++***+*+++****###*****#####################################################################################################
++:,,..,::.;;;+;**+**+++;++;;+++++*;+**++**+++*+*#####*+#######################################################################################################
::,,..:;;:+;+++;;+++++;+++++++;;;;++****+**++++++**##**######################*#################################################################################
:::,:::::+;;+++++++;;++++;;;++++++********++++*+*****###########*##############################################################################################
.::,,::,;;,;++;,:;:;;+++++++***++++******+;+***#***#####**##########**##########*##############################################################################
,:::::,;;;,,:,:,,:;++++++;;+++**********++;**###*****####**#########**##******##**#############################################################################
,,,,,:::;;;,;;+;+++;+++++*+************+++**###*#*+#****###############***********#############################################################################
:,,,,:::;;;;:;++,:;;+;+************+**+++*****##******################*************############################################################################
,,,,:::;;;;;;..,.,,+++++***++++**+***+++**********#****###############**************###########################################################################
,,,,::;:;;::.,....,,::;+++*+****+*++++*********+******################****************#########################################################################
,,,,:;,,.,..,,,,,:,,::++;:;::+;:++;***********+******################*****************#########################################################################
,,,::::,,;;;;;;+++++++++*:++++*+++*******************################*****************#########################################################################
,::::;;;:;:;;++:,,;;;++:;+*****************+**********###############*******************#######################################################################
,:+++++++++;;+++++++++*++****++**++++****++++++**+******#############******************########################################################################
:++++++++++;:+++++++**************++*****+++++++++****+**#######*#####****************#*#####,;+**#############################################################
++++++++++++:++++++++**********************++**+******+***##**#########***************#**###.,,++##############################################################
+++++;+++++++++++++++******************+*********************##########******#********##*####+;+*+#############################################################
+++++:;+++++++;++++++*+*+**************+****************##*#*##########**######*******#########################################################################
:;:;: ,+++++++++++++;++***+*++*********+********************##################*****############################################################################
;;:.:.;,:+++++++++**+++*+*+:;:++*****************#*****######*#############*******#############################################################################
+++;:,::.:++++++++++++++++++++++;+*++*****************#*####*################**#*##############################################################################
++++++;:::+;+++++++++++++*+++;+++*;+++*********##*#*****#**##*##########################*######################################################################
+++++++;;++++*+++**;+;+++++++++;+**********#*#**#*++*++++++***#################################################################################################
++++++++ ,;+;;;++;;;+;;;;;;;;++**************##***+++++++*++*****##############################################################################################
++;;*+*****+++:;;++;;:;;:;++;+++++*+********##**++*****#****###################################################################################################
;+++;;:;++*++++:;+;,;:;;:;;;++++++++++++*********##############################################################################################################
+++++;++++++++++;+:;;;;:,;;+++++++++++++++****#################################################################################################################
++++++++++++;+;;:;;+;;;:;+++++++++++++++++++***#########*############################*#########################################################################
+++++;;;+*+++::::;:;;;:;;;:++;+;++++*+**************++*###*#########################*##########################################################################
+++++;++;;++;;,::+;;;:;::;;;;++;;;;+****++****+*++*++++*+**####################################################################################################
+++;++;;+;++;:,:;+++++++;;;:;+++++******+*++*++++++*+*****########################*############################################################################
+++++*+;+;++;++::;;;++++***+++******++++**++**+++*********#######################*#############################################################################
;;+++;++;;;;;;+*+:;;++++++++++++++++++++**+*+*+++**+***#####*###################*##############################################################################
++++++*;++++;;;;;+;:;+++++*+++++++++++++*++++++++******########################################################################################################
++++*+++*+;++++;++++;;:;;;+++++++++++++++++++++***+*+***#######################################################################################################
********+**++++++++;++++;;++++++++++++++++++*******+******#*###############*###################################################################################
##****+***+++++++++++++++++;;+++++++++++++******************#*###########*#####################################################################################
####+*****++++++++++++++++++++++++++++++*+*****#######*********################################################################################################
######*+****+++++++++*++*+++++;;+++++++++*****########*####****#####*##########################################################################################
#########*+***##+++++*****++++++++++++++++**###############****################################################################################################
#############*+**+***++**##*++++++++++*+**#######**###########*################################################################################################
#################***+++*++***++++++++**####***#########*##*####################################################################################################
$******,:,:;;:;:,::::+++++;;;+*+*+++;;;+**+*##****######**###########**#########################################################################################
+*++;::;;;;::::;;+++;+++;*+;++++++*++++*+++++**+**#######*#**##################################################################################################
++;,;;:,,,,,:;;*****+*;+;;++;+;++++++****+*+++****#####**######################################################################################################
++:,:,.,::.;+;;;**+***++++++;+++++++;**++**+++**#####**+#######################################################################################################
::,,,.:;;:+;+++;;+++++;++;+++++;;;;;*******+++++++*##*#####*#################*#################################################################################
::,,::::,+;;++++;;+;;++++++;++++++******##*+++++***#*#*########################################################################################################
,,::,::,;+,:;+;,::;+;+++++;+***++++******++++**#****#*####*#######*#**#*#######**##############################################################################
,::,,:,;;;,,,,:,,:+++;+;+;;++++********+++;+*####****####**###*#####*###******##**#############################################################################
,,,,::::;;;,;;+;;;;;+++++*+***+********++****##*#*****#*#*#############***********#############################################################################
:,,,,:::;;;;;;++,:;;+;+************+***+++**###*********####**#*#######************############################################################################
:,,,,::;;;;:;.,,.,,;+++****++;+****++*;++*********#*+*#################*************###########################################################################
,,,,::;::;::,,....,,,:;;++*********+++*********+*******###############****************#########################################################################
,,,,:;:,..,..,,,,,:,,:++;;;:;;;:+;;+*****************################*****************#########################################################################
,,,:;;:,.;;;;;;++++++++++++++++++;**********+*********###############*****************#########################################################################
::::::;::;:;;++;,:;;;;++;+*+*+*************+****+*****###############*******************#######################################################################
,:+++++++++;;++++++++++++****++**++++*****++++++*+******#*###########******************########################################################################
,++++++++++;;++++++++*************++****++++++++++****+*########*#####**************#***#####,;+**#############################################################
++++++++++++:++++++++***********************+*********++*##############******************###.,,;+**############################################################
+++++++++++++++++++++*********************************+******##########*****##********##*####;;+*+#############################################################
+++++::+++++++;++++++******************+****************##*#**#########**#######******#########################################################################
::;;:..;++++++++++++;++******++*******++*********##***#****###################*****############################################################################
;;:,:.+;;;++*+++++**+***+++;;,+++***************###*+**######*#############********############################################################################
+++;:,;:,;+++++++*++++++*+++++++++*++**********#**#*****##*#**###############***######*########################################################################
+++++++;::+++++++*+*++++**+++;;+++;++++*********###*****#***############################*######################################################################
++++:+++:++++**+++*+:++++*+++;+;++*********####***+**++++++***#################################################################################################
+++++;*+.,:+:+++++;;+;;;;;;;+++*******+**+***#****+++++++*++*+***##############################################################################################
;+++++*****++*:;+++::;;;:;++;+++++**********#****+*********####################################################################################################
;+++;,;;;++++++:;;;:;:;;;;;;+;+++++++++++********##############################################################################################################
*++++;++++++++++++:;;;;;:;:+++++++++++++++****#################################################################################################################
++*+++++++++++;::;;+;;;:+;++++++++++++++++++***######################################*#########################################################################
++++;;;;+*+++:;:;;:;;::;;;;;+;;;;;++++***+******+**++++*######*#####################*##########################################################################
++++++++;;+++;::;;;;;;;;;:;+;++;;+;+****++*++*+*++*+++++***#*##################################################################################################
+++;;+;;+;;++;,:;+++++++;;:;;;++++++****+*++++*+***+******#*######################*############################################################################
++++++*++;+++;*::;:;+++++***+++*****+++***++*++++*********#####################################################################################################
;;+++;++;;;;;;+**:;;++++++*+++*+++++++++**+++*+++***+**#####*##################################################################################################
++++++*++++++;;;;+;:;+++++*+++++++++++++**+*+*+++******#######################*################################################################################
++++*+++++;++++++;++;;;;;;+++++++++++++++++++++****++****######################################################################################################
**********+++++++++;;+++;+;+++++++++++++++++*++****+********###############*###################################################################################
##*****++*+++++++++++++++*++;+++++++++++++*+******************###########*#####################################################################################
####+*****++++++++++++++++++++++++++++++*+*****#######****#****################################################################################################
######*+*+***++++++++*++++++++;;+++++++++*****########**###****###*#*##########################################################################################
#########*+****#*++++*****+++++++++++++++++*###############****##*#############################################################################################
#############*+******++**##*++++++++++**+*######***########*##*################################################################################################
#################***+++**+*#++++++++++*####***############*####################################################################################################
$******::::;;:;::::::;++++;;;*+**+++;;;+****###***##*###**############*#########################################################################################
+**+;::;;;;::::;:+++;+*;;++++++++++++++*+++++****########*##*##################################################################################################
+;;,;;:::,,,,;:***+*+*;;;;*+;+++++++++***+*+++**#*####***#*####################################################################################################
++:,:,,.::.;++;;**+++*++++++;+++++++++*+++*++++***####*+#######################################################################################################
:,:,,.,;;++++++;;;++++;++;;+++++;;;;+******+++++++****#######*###############*#################################################################################
::,,::::,;+;++++;;+;;+++++;;+++*++*********++++******##########################################################################################################
.,::,::::;::;++:,:;;;;++++++***++++******++;+***#***######*#*#####*#**#########**##############################################################################
,::,,:,:;+::,;,:,,;;++++++;++++*********++++*#####***###############*###*******#**#############################################################################
,,,,,:::;;;;+;;+:;;++++++*+***+*********++;**#####***#*##*##*##*#######***********#############################################################################
::,,,:::;;;+;;++:::;+++****************+++*****##******###############*************############################################################################
:,,,,::;;;;:;,,,,,,:+++*****+:++***++*+++******#*#*****################*************###########################################################################
,,,,::;;;;:::,.....,,::;+++******+*+++*************#***###############****************#########################################################################
,,,:,;;,,.:, ,.,,,;,,:;++::;;;+::;;+*****************################*****************#########################################################################
,,::;;::,::;;;;+++;++++++*;+++++++**********+*********###############*****************#########################################################################
,:::::::;;::;+++,:,;+;++,;++****************+*********###############*******************#######################################################################
,,;++++++++;;++++++++*+++****+;+*++++*****++++++********#############******************########################################################################
,+++++++++++;;+++++++*************+++****+++*+++++*********###########********#*********#####,:+**#############################################################
;+++++++++++++++++++*********************+**+***+*********###**########******************###:,,;+#+############################################################
++++++++++++++++++++++**+**************++*********************#########*****##*********#*####+;+++#############################################################
:++++::,++++++;+++++++******************+****************##***##########***######******########################################################################
::;:::.;+++++++++++;++*******++*********************+*#*****##################*****############################################################################
:;::,.:.::++++++++**++**++*+;:;*+****************##***##*#####*############********############################################################################
+++;::;:,.:++++++*++*+++*+++++;++;++++************##****#*###*################*################################################################################
+++++++;:,++++++**+**++++**+++++*++++;+***********#*****###*############################*######################################################################
+++++++++;+++**++***:+;+++++++;+;+***********##*#**+**+++++****################################################################################################
++++*+++;.:+;;;+++:;++;;;;;;;+++*********+****##***++**++**+*+***##############################################################################################
;++;++*****++*+;;++;;;:;;:+++;++++**+*******#***+++********####################################################################################################
+++;+;;;:+++++*+:;+:::;;::;;;++++++++++++*********#############################################################################################################
**++++++;+++++++:;;;+;+;:,;;+++++++++++++++***#################################################################################################################
+++++++++++++++;::;;+;;;;;++++++++++++++++++***######################################*#########################################################################
+++;+;;;+***+;;,;;::;;;;;+;:++;+;;+++++*********+***++**##**##*#####################*##########################################################################
++*++++++++++;:::;;;;;:;;:;;;;++;;;+*****+******+*++++*+***####################################################################################################
++++++;;;+;++;,::;+++++++;:;:;+++++*****+*+++**+**++*******#######################*############################################################################
++++++*+;;;++;*;:;;++++++***+++***++*++*+*++*+*+*+********#####################################################################################################
;;+++;++;;;;;;;+*;:+;++*++++++++*+++++++**++++*+++*****########################################################################################################
++++++*+++++;;;;;;+:;+++++*+++++++++++++**+++*+++******#######################*################################################################################
+++++++*++;+++++;+++;;;;;;+++++++++++++++++++*++****+****######################################################################################################
********+*++++++++++;+++;;;;++++++++++++++++*******+*********##############*###################################################################################
##+****+**++++++++++++++++;+;++++++++++++++*+*****************###########*#####################################################################################
####+****++++++++++++++++++++++++++++++*++*****#######***#*****################################################################################################
######*+*****+++++++++*++++++++;;++++++++*****#########*###****#####*##########################################################################################
#########*+***#**++++******+++++++++++++++***###############***##*#############################################################################################
#############*+******++***##++++++++++**+**#####***########*##*################################################################################################
#################*++*++**+*#*+++++++++*####***########**##*####################################################################################################
$******;;::;+::;:::::;;+*+;;;++*+*+++;;++**+*##*#*#######**###########*#########################################################################################
***+;.:;;;;;::::;+++++;;+++++++++++++++**+*+++*****######*##*##################################################################################################
+;;::;;;,,,,,::+*****+++;;+*;+++++++;++***+*+++*****##*#***##*#################################################################################################
++,:,,..,;,.;+;;:**++*+++++++;+++++++++*+++*++++***####*+######################################################################################################
+,:.,.,:;+:;++++;;;++++;++;++++++;;;;+******++++++**#########################*#################################################################################
::::::::;,+++++++:;+;;+++++;++++*++*******#*++++******#########################################################################################################
.,:,,::::;+::+++;,:;;;;++++++***++++***###*+++***#***######*#*#######**#*##*###**##############################################################################
,:,,:::,;;+:::;,:,,;;++++++;++++**********+++*######**##*##*############*********##############################################################################
,,,:,::::;+;:;;+;:;;++++++*+*************+++**#####*+***##*############***********#############################################################################
::,,,,::;;;;+;;++;,:;;++*************+***++**######*****################***********############################################################################
,,,,,::;;;;;:;:,,,.,,+++*****++++******+++***##*###****################*************###########################################################################
,,,,,:;;;;;:::...,.,,,::;+++*********+++****************###############***************#########################################################################
,,,::,;;,:.:, ,,,,,:,,:;++;;;:;+;:++;*****************###*############****************#########################################################################
.,:::;;::,::;;;;++++++++++*;++++++++**********+***+****###############****************#########################################################################
,:::;:;;:;:;:;+++:::+++;+;;+*****************+*********###############******************#######################################################################
,,:+++++++++;;++++++++***++**+:+**+++*********+*+*******##############*****************########################################################################
,:++++++++++;;++++++**************+++*****+++++++*+********############*****************######,;**#############################################################
:++++++++++++;++++++*************************+++*********+*#############*****************####.,:+**############################################################
:++++++;++++++++++++*********************+************#******###########*****#*********######*;;+**############################################################
:;++++::;++++++;++++++*******************+****************##***####################****########################################################################
::+++;:.:++++++++++++++*+******++******++********###***##*#*###################*****###########################################################################
;:;:;:..,;:++++++++**+****+++++:+++***************###*+**#*##################*******###*#######################################################################
+;++;::,::,:+*++*++**+++++*++++++++++++************##*****#####*###############**##############################################################################
++++++++;:::+:+++++****+++***++;;++++++;+********#*##*#***#*############################*######################################################################
++++++++*+;+++**+++**;+++++*++*+++++***********#*##****+++++*****##############################################################################################
++++**++*+.:;+:;+++;;++;;:;;;+++***********+***###**+++++++*++****#############################################################################################
;+++++******++*+;;++;::;;;;:+++++++**+*******#**#*++****##**###################################################################################################
++;+++:;;:++*++++:;+;;::;;;;;;+;++++++++++*******##############################################################################################################
+**+++++++;++*+++;;;:;++;;:;:+++++++++++++++***################################################################################################################
++;++**+++++++++;::;;+;;;:+;++++++++++++++++++**#####################################*#########################################################################
++++;+++:+**++:::;;;:;;:;+;;;;++;;;++++****+*********++**###########################*##########################################################################
+++++++++++;++;::;;;;;;;;;;;;+;;+;++;+***+*+****+**+*++******##################################################################################################
;++++;++;;+;++;,:;;+++++++;;:;;;+++++*******++*****+*+******######################*############################################################################
+++++;+*+++;++++:,;;;++++++***++******+*****+*+*++*********#*##################################################################################################
;;++++++++;;;;+;+*:;+;++++++++**+**+++**+**+************#######################################################################################################
+++++++*+++++;;;+;;;:;+++++*++*++++++++++**+*+*+********#######################################################################################################
+++++*++++++++++;;+++;;;;;;+++++++++++++++++++************#####################################################################################################
+***#*+++**++++++++++++++;;;;+++++++++++++++******************#############*###################################################################################
##+********++++++++++++++++;+;;++++++++++++**+******#***********#########*#####################################################################################
####+******+++++++++++++++++++++++++++++*+******###########******##############################################################################################
######*+**+**++++++++++*+++++++++;++++++++*****##############***####*##########################################################################################
#########*********++++*****+++++++++++++++++*###############****#*#############################################################################################
#############*+***+***++*+*#*++++++++++*+**########*#######*##*################################################################################################
#################****+++**+**+++++++++**#####*#########*##*####################################################################################################
$******;::::;;::::::::;++*+;;;++*+*+;;;;+**#+*##***######**###########*#########################################################################################
***+;::;;;;;;:::;;+++++++++*++++++++++++**+*++*****#######*###########*########################################################################################
++;;:;;:;:,,,,;:******+++;;**;*+++++++++***+**++**######****###################################################################################################
;+::,:,,.::.,;;;;+**++*+++++++++++++++++*+++*+++*#**####**################*####################################################################################
+:::,..,:;+:+;++;;;++++++++;++++++;+;;+******++++++**########################*#################################################################################
,:;::::::;,;++++++:+++;+++++;++++*++******##*+++******#########################################################################################################
,,::,:::::;+:;+++;,:;;;+++++++***+++***##**++++*#*#***######*#########*###**###**##############################################################################
:,::,:::,;++,::+,::,;+++++++;+++++*********++;*######**#####*############*****#***#############################################################################
:,,:::::::;+;;:;+;+;+++++++++*************+++**#####**##**##*###########**********#############################################################################
,::,,,:;;;;;;;;;+++,:;;;+*************+***++**######**#**###############************###########################################################################
.,,,,,:;;;;;;;;;,,:,,:++++******;+****+**++***##*###*#***###############************###########################################################################
:,,,,::;;;;;::;.,.,.,,,:;;;+***********++*********+*******##############**************#########################################################################
,,,,::,;;,:,,:.,:,,,,::,:+*+;;;+;+:;;:+*************#**###*############***************#########################################################################
,,,::,;:::,,::;;;++++;+++*++*;+++++++**********+********###############***************#########################################################################
,,::;;;;;;;;;:;++++:;;++;++,;++*************************###############*****************#######################################################################
,,:;+++++++++;;+++++++*+++*+**++**+++*********+**********##*##########*****************########################################################################
,,;++++++++++;;++++++*************+++******++++*++*+****#**+############**************#*######.:+**############################################################
::++++++++++++;++++++*************************++++*****##****###########*****************####.,,;+*+###########################################################
,;++++++.++++++++++++**********************************#*****###########******##********######;;+++############################################################
,:+++++::++*+++;;+++++++*********************************#####**###################****########################################################################
,::+;+;::,;++++++++*+++++*******++******************#****##***################******###########################################################################
+:;;:;:, :.;++++++*++++*****+*+;;:*+****************###*###**################******############################################################################
++;++;::,:;+:++++*****++*+++*++++++++**+***********#*##****#####*###############*######*#######################################################################
+++++++++;;:+++;+++*****++****+++++++*;++*+*********###*#***#**#########################*######################################################################
+++++++++++;+*++*+++**;+++++++*+++++*****#***#***###*****+**+*#***#############################################################################################
,++*+**+.++,::+,;++++;+;+;;;;;;++*+*************####**++++++*+*****############################################################################################
:++++++*****+++*++;;+;;;;;;+:+++;+++************#**++****#*####################################################################################################
++++++;;;+*+++++;+;:+;;:;;;;;++;+++++++++++*******#############################################################################################################
;++*+*+++++++*++++;;;;;+++;::;;+++++++++++++++**###############################################################################################################
++++++**+*+++++++:;+;++++;;;;+++++++++++++++++****###################################*#########################################################################
+++++;++++++***;;;;;;;:;;;;;++:++;+++++++**************++*##########################*##########################################################################
;+++++++++++;;++:;;;;;;;;:;;;;;+;+++++;+*+*************+******#####################*###########################################################################
;:;++++++;;+;++:::;;++++++++;;;;;+++++*******++*************######################*############################################################################
+++++++;*++++++++;:;+;++++++****++************************#*#####################*#############################################################################
;;+;+++++++;;;;++++:;++++++*****++*+++++*+********+******######################################################################################################
++++++++++++;;;;;;;;;:++++++**++++++++++++**+************######################################################################################################
*++++++;*+*+++++++;+++;;;;;;+++++++++++++++++++*************###################################################################################################
+*****+*++*+*+++++++++++++;;+++++++++++++++++***************##**###########*###################################################################################
##**********++**++++++++*+++++++++++++++++++********###*#**#****###############################################################################################
####+******+++++++++++++++++;;++++++++++*********###########*****##############################################################################################
######*++*****++++++++++*+++++++++++++++++++****##############***###*##########################################################################################
#########**+******++++++****+++++++++++++++***################**###############################################################################################
#############**+**+*##+++*+*#++++++++++****#########*#####*###*################################################################################################
#################*****++***+*++++++++++*######*###########*####################################################################################################
$******;,:::;;;:;:::::;:++++;;++****++;;++**#**##*#*#####**##########**#########################################################################################
***+;;::+;++;::::;++++++;++++++++++++++++****++*****######*####################################################################################################
++:;,:;;:,:,,,:;+*****++++++*++*++++++;++***+++++***####**#*###################################################################################################
:+;::,:,,.;:.;;;;;+**+*+++++++++*++++++++*+++*+++****####**####################################################################################################
+;,:,,..,:++:++++;;;++++++++;+++++++;+;+*******++++***#######################*#################################################################################
,:;:,::::;+:;++++++:+++;++++++;++++++*#****##*+++******########################################################################################################
,,:::,:::::;+:;+++;,:;;++++++++**++++***#*#**+++***#***#*#############*#########*##############################################################################
,:;,,::::,;++,::+,:,:;+++++++++*+**********+++;**#####***#**#*############********#############################################################################
,:,,:::::;;++;;:;+;+;+++++++++**************++**#####*+##**#############**********#############################################################################
:,;,,,:::;;+;+;;:+++:;;+++*****************+++*#####***##*###############*******#**############################################################################
::,,,,::;;;;;;+;;,,:,,:++++*****+;+****++*++**#########***##############************###########################################################################
:,,,,:::;;;;;;:;.,.,,.,,:;;;+*+***#**+*+*+****#************#############**************#########################################################################
,,,,::;:;;::,.:..,,,,,;:::;*+;;;;;+;;;++*************#*################***************#########################################################################
.,,:::,;:;:,,::;;;++++;++++*+*;++++*******************#################***************#########################################################################
,,:::;;;::;;;;;;++++:;;+++++;;+*****************+*******###############*****************#######################################################################
,,::++++++++++;+++++++++****+*++***+++******************#####*#########***************#########################################################################
,,:+++++++++*+;;++++++*************+++*******+*+**+*****###***##########**************##*#####*,;+#############################################################
,,;++++++++++++;+++++***************************+++*****###***###########****************#####,,:+*############################################################
:,+++++++;+*+++++++++***********************+**********###***############*****##*********#####;;++*+###########################################################
,:;++++;:;+:++++;;+++*++********************+***+*****###*#########################*****#######################################################################
:,:;+,;;;+;++++++++++++++********+++****************#*##**#####################*****###########################################################################
+;:;;:;:;,. ;;+++++*++*+*****++++++;*+***************####*###*################*****############################################################################
+++++;;:::;:+;;+++***+*+***+***++++;;++***************##*#**###################################################################################################
++++*+*++;+;;+++;++**++*+*+++***+++++*+++++*********#######**#**########################*######################################################################
+++++++*+*++++*****+++*;*++++++*+*++++******#***######****+++****#**###########################################################################################
;:++****+,++++;;+:++++;+;;;+;;;+++**+*************##*#**+*+++*****####################*########################################################################
;;++*++*******++*++;;++;;:;;;+:;++;++*************#**++#**#############################*#######################################################################
+++++;++;;++++**+++;:;;+;;;;+;;;++;++++++++++*****#############################################################################################################
+;++++++++++++++*++;+;;;++++;::;++++++++++++++****#############################################################################################################
+++*++****++++*++;;:+;;++++;;;;+++++++++++++++++**#############################################################################################################
++++++;;++++***+;+;++;;;;;;;+++;;++++++++*****+************#########################*##########################################################################
+;**+*+++++;+;;;+:;;;;;;;;;;;;;;;;+++++++********************##################################################################################################
+;;;++++++;;;;++:,;;;++++++++;+;;;;+++************************####################*############################################################################
++++++++;++++++++;::;+;;+++**+***+++***********************#*####################*#############################################################################
+;;++++++++++;;;++++:+++;+**++****++*+********************#####################################################################################################
++++++++*+++++;;++;+;::++++++**+++++++**++*****************#################*#*################################################################################
*++++++++++*++++++++++;;;;;;+++++++++++++++++++*************###################################################################################################
******++*++*+++++++++++;+++;;;++++++++++++++++******************###########*###################################################################################
##***********+++++++++++++++++;+++++++++*+++********#######*#****########*#####################################################################################
####**+*****+++++++++++++++++;;+++++++++++*******############*****#####*#######################################################################################
######*++**+***+++++++++++++++;++++++++++++++***############*#****##*##########################################################################################
#########**+********+++++****+++++++++++*******###############****#############################################################################################
############****#*+**#*+++***#++++++++++****#########*#####*##*################################################################################################
################******+*+***+*+++++++++**######*#######**#*####################################################################################################
$******;.;:::;;::::,:::;++++;;;++****+;;;+**********######**##########*#########################################################################################
***+;;,:;;;;+;::::;+++;++++*+++++++++++++*#*+*++****#######*#*#########*#######################################################################################
++:;,,:;;;,,,,,::+*****++++;**;+*+++++++++***+++++***#####*####################################################################################################
:+;:;:;:,,:;,.;+;;++**++++++++++++*+++++++*+*+*++++***####**###################################################################################################
+;,:,,...,;++:++++++++;+++++++++++++++;++***#***++++***######################*#################################################################################
;,::::::::;+:;++++++;+++;++++++++++++*******##*+++******#######################################################################################################
.,::,,::::;:;+:++++;,:;;;+++++++**++++****##**++++**##*###############*#########*##############################################################################
,,::::::::,+++,;:+::,,;+++++++++*+***#****#*++++**#####****###############******#*#############################################################################
,::,,:::::;;++;:,++++;++++++*+************#**+++*#####***#**#############*******#*#############################################################################
,,::,,::;;;;;;+;:;+++:;;+++*********+********+**######**#**#############*********#**###########################################################################
,,:,,::::;;;;++;;;,,,,,:;+*+******+;+****+**++**#######***##############************###########################################################################
,:,,,,::;;;+;;;:;,..,,,,,,:;;+*+*******+***********##*******############**************#########################################################################
,,,,::;;;;;;::,:,.,,,,::,::;+*+;;;+++:+;;*************#**###############*************#*########################################################################
,,,::::,;;;;,,:;;;;+++++++++*+++++++*+*+*****************###############**************#########################################################################
,,,:::;;;::;;;:;+++++;+++++;++:+*************************###############****************#######################################################################
.,,::++++;+++++;+++*+++*+*+*+*++****++******************######*#########****************#######################################################################
.,,:+++++++++++;;+++++*************+++**********+***+****###*############*******#******#######*.:+**###########################################################
,,,+++++++++*+++;++++****************************++++****####**###########******#******#*#####.,:;+*+##########################################################
,::++++++++**+++++++++**********************************####**############**######******#######+;++*###########################################################
:,;+++++;;;++*+++;++++****************************+****###*****###########*#########****#######################################################################
::,:++;;;;+;+++++++++++++**+********++***************###*#**####################*****##########################################################################
++;:;;:,+;:  .++++++**+++********+;+:+++**************#########################***#############################################################################
+++++;;;;:::;+;+++****+*****+*+*++++++++*+************#*##***##################################################################################################
+++++++*++;++;:;:;++**+***********+++;+**++++*******#*####****#**#######################*######################################################################
+++++++++*++++++++**+*++;*++++*+**+*+++*******#**#*######*+**+*+**#*###########################################################################################
+:++***+*+++++++:+:;++;+++;++;;;++++**************###******++*****#############################################################################################
;;:+**+********++*++++++;+;:;;+;;+++++******#****###***+#######################################################################################################
+++;++;+++++++****+;;+:;+;;;;++;++;+++++++++++*******##########################################################################################################
+++*+++++++++*++**+;;;;;+;++++;;;;++++++++++++******###########################################################################################################
++++++++**++++++++;;;;+++++++;;+++++++++++++++*+****#################################*#########################################################################
++;++++;;+++****+;;;+++;;;;;;;+++;++;+;++++*****************########################*##########################################################################
+++*++++++++++;;;;:;;++;;;;;;;;;;;+++++++++*******************#####################*###########################################################################
++;++++++++;;;+++::;;;;;++++++++;;;;++++*********************####################*#############################################################################
++++++;++;++++++++;:;;+++++++*+****++***********************#####################*#############################################################################
++;+++++*+++++;;;+++;;+++++++*+*++**++********************#####################################################################################################
+++++++++*+*+++;;;++;;::+++++**+++++++**********************###################################################################################################
++++++*+++++++++++++;++;;:;;;+++++++++++++++++***************##################################################################################################
******+++++*+++*+++++++++++;;;++++++**++++**++**************##****#########*###################################################################################
##*+**********+***+++++++++++++;++++++++**+++********#######*******############################################################################################
####*+******++++++++++++++++++++++++++++++********############*****####*#######################################################################################
#######*++******+++++++++++++++++++++++++++++++**##############****#*##########################################################################################
#########**++*****+**+++++****+++++++++++*******####*#########*################################################################################################
##########*#**********#*++++***+++++++++*****#########*####**#*################################################################################################
################******++++***++++++++++**#######**##*#####*####################################################################################################
$*****+;.::::;+;:::::::;;++++;;++****++;;++**#***#*########*##########*#########################################################################################
**++;;::;;;;+;::::;+++++;;++++++++++++++++**+*+++****######*###################################################################################################
++;;:,:;;:::,,,::+******;++++*++**++++++;++****++++*#*####*###############*####################################################################################
:;;,;:::,,.;:.,;;;;+**++*+++++++++**+++++++*****+++***#####*###################################################################################################
+;:,:,,..,,;+:++++++++++++++++++++++*+++++***#*#++++****#####################*#################################################################################
+,:::,::::;++++++++++++++;+++++++++***+*******#*+++*****#######################################################################################################
.,:::,,::::;:++:++++;:;;;++++++*+**++++***####**++*####################*########*##############################################################################
.::;,:::::;,+++:;:+::,:++++++++++++***#***##**+++**#####**##*#############****#**##############################################################################
,,:,:::::::;;+++,:+++++;+++++*+************##*+++*#####**#***############*******#*#############################################################################
,::;,,,::;;;+++++;++++:;:++******************++**######**##**###########********#**############################################################################
,:::,,:::;;;;;+;;;;:::,,:+*++******+;+****+*++**####*#*#***##############***********###########################################################################
,::,,,::;;;;;;;;:;,,..,,,,::;;+++*******+*+*******##*********############************##########################################################################
.,,,,::;;;;;;:,,,,.,:,::::::;+*+;;;+++;++;*************#**##############*************#*########################################################################
,,,,::::,:;;;:,:;;+++++++++++*++*++++*+*+*************#**###############**************#########################################################################
,.,,::;;;;:::;;:+++++++++++++++:++**********************################*************#**#######################################################################
,,,,:;+++;+++++;++++*+++++***+*++***++*******************###############***************########################################################################
,,::++++++++*+++;+*+++**************++**********+*******#####*############***************######,:;+**##########################################################
,,:,+++++++*++++++++++*****************************+++**#####*****########***************#####+.::+*###########################################################
,,:+++++++++*+++*+++++**********************************####**############**#*####******#######;;++**##########################################################
:,,;+++++;;+**+++++++++*+**************************+****###*##**##################******#######################################################################
:::::+++;;;++;++++++++++*+****+******++***************#####**###################*****##########################################################################
++;:;;:,:+;;   :+**++**+++***+***++++;+*+****************###*###################*****##########################################################################
++++++:;;;,::++;;++***************++++;++++***********##*###**#################################################################################################
+++++*+++++++++:;::+***+*+*********+++++*+++*+******##*######*****######################*######################################################################
++++++++*+++++*+++*+*****;**+*+++*+***++********#****###*#**+*++***############################################################################################
++;+++****++;++++;+;;+++++;;++;+;+++***+**********#####*****++****#############################################################################################
+;+:;*******+***++*++++++;;;:;;++;+++++***********##*#****#############################*#######################################################################
++++;++;++++*++****+;;+;:+;;;;+++;++++++++++++******###########################################################################################################
+++++*+++++++++++***;;;;;+;++++;;;;++++++++++++******##########################################################################################################
+++++++++**++++++*+;;;;;;;+++++;+++++++++++++++**+***################################*#########################################################################
+++++;**+++++****+;;++++;;;;;;;+++;;;+++++++*****************#######################*##########################################################################
++++++++*++++;;+;;::;;++;;;;+;;;;;;+;+++++++*******************################################################################################################
*+++++++*+++;;;+++::;;;;;+++++++++;;++++**********************####################*############################################################################
+++++++++++++++++++;:;;+++++++******++**********************#####################*#############################################################################
++;++++++*++;++;;++++:;++++++******************************####################################################################################################
++++++++++*+*+++;;++;;::;+++++******++***********************#################*################################################################################
+++++**+++*++*++++++++++;;;;;;++*+++++++++++++**************#################*#################################################################################
*+*****++++**+*+*+++++++++++;;;+++++++**++**++*********************########*###################################################################################
##*+***********+**++++++++++++++;+++++++++************########*****######*#####################################################################################
###**+******+++++++++++++++++++;;+++++++++++*******#############*****##*#######################################################################################
######*++*+*+****+++++++++++++++++++++++++++++****##############***#*##########################################################################################
#########**++******++++++++****++++++++++*******###############*###############################################################################################
############****+********+++*+*++++++++++****##############**##################################################################################################
################******++++****+++++++++***#######*########*####################################################################################################
$******+,:::::;;::;::,:;;++++;;++*****+;;++*#**+*****######*##########*#########################################################################################
***+;+,::;+;;+;::::;+++;++++**++++++++++++**#+**+****################*#########################################################################################
++;;;:,:;;;::,,,:;+******;++++*++**+++++++++*****+++**####################*####################################################################################
::+;:;:;:,,,;:.:;++++**+++++++++++**++++++++*++***++****###**##################################################################################################
++;,:,,,.,.:++:++++;+++++++++++++++++*+++++***###*+++***#####################*#################################################################################
+:,:::,::;;;;++++++++++;+++++++++++++*********##**++**#**######################*###############################################################################
,,:::,,,:::;+:++:+++++:;;;+++*++*+**++++**#####**+++####**##################*###*##############################################################################
.,,:::::::;;,+++:+:+;:::+++++++++++**+****###***++**#####**###############******#*#############################################################################
:,::,::::::;+++++::+;+;;++++++++**********##*#*+++######**#**#############********#############################################################################
.::::,,,:::;;;+++;;++++;::;+*********#********+++*######**##*#############********#############################################################################
,,::,,::::;;;+;+++;;::::,:;**+*******++*******++*#########**##############**********###########################################################################
,,::,,::;;;;++;;;:;:,,.,,,,::;;++*******#+*+*+**#######**##*##############***********##########################################################################
:,,,,:::;;:;;;:::,,..:,::::::;+*+;;+;++;;;;*******##**##*#*##############************##########################################################################
 .,,:::;;,:;;;:,:::;++++**;+++**+*;+++********************###############*************#########################################################################
.,.:::;;;;;;::;:;;++++++;++++++++++*********************#################***********#*#*#######################################################################
,,:,:::++;++++++;+++++*+**++*+*++***++*******************################************#*########################################################################
,,,::+++++++**+++;++*++*************+++*******************#####*##########***************#######,:+**##########################################################
,,,::+++++++*+++++++++******************************+++***#####***#########*******#******######.,:;+**#########################################################
,,::++;+++++++++*++++++*********************************###################***######****#######+;;++*##########################################################
:,::+++++ +++*++++++++++********************************#####*##################********#######################################################################
+:::;++++;;+++;++++++++++*+***********++**************######**##################******#########################################################################
+++;;;;;,:;++  .,+**++*++++*********+++;**************##*###***#################****###########################################################################
+++++*+;;+;:,:;+++++**************+++++++++++*********#########################################################################################################
++++++*+*++;++++;+;+;+**++***********+++++*+*+**********#####*******####################*######################################################################
++++++**+++*+++*+++++*+*++;+*++++++**+*+++********#*######**+*****#*****#######################################################################################
*++++++***+++;++*+;;+;+++;+;;++++++++*****+*****#***######******#**############################################################################################
++++:+*******+***++++++++++++;;;++++++++************###*#**############################*#######################################################################
*+++++++;;++********++;+;:;;;;++++;++++++++++++*****###########################################################################################################
+++++*++++++*;*+++++*+;+;;;+++++++;;;+++++++++++******#########################################################################################################
++++++++*+**++*+++*+;;;;+++++++++;++++++++++++++******###############################*#########################################################################
*++++++**+++++****+;:+++++;+;;++;+++;++++++++******************#####################*##########################################################################
++++*++++*+;+++;+;+::++;++++++;;;;;;++++++++++*****************################################################################################################
+**+++++++++++;;;+;::;;;+++++++++++;++++++********************####################*############################################################################
++++++++++++++++++++;:;;;++++++*******++**********************###################*#############################################################################
+++++++++*++++;+++++++:++++++*******************************###################################################################################################
+++++++++++*++++++;;+++;;;++++++*+**++**********************##################**###############################################################################
++++*+**+++*++*+++++++++;;;;;;++++++++++++******************#################*#################################################################################
********+++++++*+*++++++++++;;+;+++++***++****************####******#######*###################################################################################
#******************++++++++++++;++++++++++************########*******####*#####################################################################################
###**++#******+++++++++++++++++;++++*++++++++*******##############***##*#######################################################################################
######++++*+******++++++++++++++++++++++++++++****##############***#*##########################################################################################
#########***++******++++++++***+++++++++++******###############*###############################################################################################
############****+*********+++*+*+++++++++*****##############*#*################################################################################################
################**#***++++*****++++++++***#############*##*####################################################################################################
$******+,,;;::;+;::::::;;;+++++;++****++;;++********############################################################################################################
**++++:::;;;++;;:::;++++;++++++++++++++*++++**********######*#######**##*######################################################################################
+++:;:::;;;;::,,:;++******;+++**+***+++++++++*****++***#####*##################################################################################################
;:+;;;;:;:,,;;,.;;++++**+++++++++++***+++++++#*+***++****###*##################################################################################################
++;,,,,,..,,:+;,++++++++;+++++++++++++*+++++***#*#++++****###################*#################################################################################
+;::::,::;;;;+:+++++++++++++++++++++*+********###*+++*****#####################*###############################################################################
:,,:::,,::::;+;++;+++++;;+;+++*++*+*++++*#######**+++###**##################*###*##############################################################################
..:::::::::;+:+++;+:+;:::+++++++++++**+**#**##*#+++**#####**############*##*******#############################################################################
:,:::::::::;;+;;++:,+++;;+++++*+************#**#+++*########**############*******##*###########################################################################
,,:,;:::::;;;;:;*+;:+++++:;;++*********#+*#*****++*#######*##*##############******#*###########################################################################
,,,;:,::::;;;+;+++;;;;:::,:;+*++******++****+***+*######*##*##############***********##########################################################################
,,::,,,::;;;;+++;;;;+,:.,,,,::;;++****###*+++*+#**######***###############***********##########################################################################
:,,,,:::;;;;;;+;:;,:..:,:::;::;;+*+;+;+++;+++*****####*####*##############***********##########################################################################
 .,,,:::;;:,+:+:::;:;+++++*+++++*+**++++*+********###*****################************#*#######################################################################
..,,,::;;;+;;::::;;+++***+++++++++:+**********************################************#*#######################################################################
.,,::::;++;;++++++++++***+*#++**+++***********************################***********#**#######################################################################
,,,,:,++++++**++++++*+++********+***++++******************######**##########***********#*######*.:;+#*#########################################################
:,,,:+++++++**+++*+++++*******************************+***######****########*************######,.::+*##########################################################
::,::++.++++++++++*++++***********************************##################**######*****#######+;+++*#########################################################
::::;+++++,+++*++++++++++*********************************####*###################****#########################################################################
+;:::;++++;:+++;;+***+++*+**+**********+;+***************#####**##################****#########################################################################
++++;;;;;;:;+*:...;+++**++++********+*+++;*+************##########################**###########################################################################
+++++**+:;+++:::++;;+****************++++++++***********####**##########################*######################################################################
++++++**+*++++++;+:;,:****++**********+;+++******#****##**#####*****####################*######################################################################
++++*+*****+#+++**+++***+**;***+*++*+*****************#######******#****#######################################################################################
++++++++*****+;;+*++;;;;;+++;;++++;+++****+***#***#*########*****##############################################################################################
++++;++++*****++*++*++++++++++;;+;+++++++************####*#############################*#######################################################################
++++++++++:;;+********;;+;:;;+;;++++;+++++++++++******#########################################################################################################
;++++**+++++++++++;+**+;+;;++++++++;:++++++++++++*****#########################################################################################################
++++++++******++*+++*;+;;++++++++;;;+++++++++++++******##############################*#########################################################################
+**+++*+*+++*+++***+;:+++++;++++;+++++;+++++++****************######################*##########################################################################
*+*+++++*+++++++;++:;:++;+++;+++;;++;++++++++++*****************###################*###########################################################################
****+++++++++++;+++;::;+;;+++++++++++;;+++++******************####################*############################################################################
++*++++++++++++++++++;:+;;++++++********++********************###################*#############################################################################
+++++++++++++*++++++++;;++++++++****************************####################*##############################################################################
*++++++;+++++++++++++++;::++++++++**************************###################################################################################################
+++++++++++++++*+++++++++;;;;;;+++++++++++++***************##################*#################################################################################
**+***+++++++*++*+*+++++++++;;;;++++++********************####*******######*###################################################################################
#*#*+***************++++++++++++++++++++++*************#########*****####*#####################################################################################
###***#*******++++++++++++++++++++++++++++++++******##############***##*#######################################################################################
#####****+********++++++++++++++++++++++++++++****##################*##########################################################################################
#########****+*******++++++++***+++++++++++*****#########*########**###########################################################################################
############****++#********+++**++++++++++****##############*#*################################################################################################
################******++++++****++++++*****########*######*####################################################################################################
$*****++:,:,:;:+;::;;:::;;;++*+;+*+***++;;++*********#################**########################################################################################
***+++::::;;+++;::::;+++;++++*++++++++++++++**********######*#######**##*######################################################################################
+++:;:,,;;;;;:,,,,;++*****+;+++*++***+++++++++******+***#####*##########*######################################################################################
+::+,::;;;:,,;;..:;;+++**++++++++++***++++*+++#*+***++****#################**##################################################################################
;++:::,,..,,:;++:++++;+++++++++++++++++*++++*****##*++****###################*#################################################################################
++;,:::,::;:+++:++++++++;++++++++++++++*******####**++**#*##################*##*###############################################################################
;:.,::,,::::;;+;++;+++++;;++++++++#*++++****####***+++##**##############*###*###*##############################################################################
 . .,:::::::;+:++;++:+;:::++++++++*++*****##*********######**###########*###******#############################################################################
,:,::,::::::;;+++*+;,+++;;+++++*+***********##****++##########*###########*******##############################################################################
,,:::;::,::;;;;;+++;;+;+++:;+++*************+***#++*##########*#############********###########################################################################
,,,:,::::::;;+;;++++;+;:::::;+**+******+;+****+*++**######################******##***##########################################################################
:,,::,,,::;;++++;;;;;;,,.,,,,::;;+++**#*****+*****######***###############**********#*#########################################################################
::,,,,:::;;;;:;+;;;::,.,:::::::;;+*+;+++++++++****##########*#############***********#*########################################################################
. .,,,::;;;;,;:;:,,;+;+++++++++++**+*++++*+*******##****##################**************#######################################################################
,.,,,:::;;;;;;;:;;;;++++**++++++++++++******************##################************#*#######################################################################
:,,,,::;+++;;+++;++;**++****+++*+*************************################***********#**#######################################################################
:,,,::;+++++***++++++***+*******+****+++********************######*#########***********#*#######*.:+**#########################################################
::,,::++++++***+++*;++++***************************++*******#####***########*************######*.,;;+**########################################################
::,,:;++,+++;+++*+*+*+++**********************************##################**########***#######:;;+++#########################################################
::::::++++++;+*+++++++++***********************************####*##################******#######################################################################
++;:::;++++;;+*++:++*++++*+++************+;+**************#####*##################****#########################################################################
++++;:;;+;:,;++:..,.+*++**+++*******#**+++++*+************#####################################################################################################
+++++*+*+:;+++:;:;++++*****************+++++++**********######**########################*######################################################################
+++;+******+;++++++:+,++****+***********+++++*****##**********##******##################*######################################################################
+;++++++****#;+++**+++++**++;+***+*+*+#*************#***######*+****#*****############*########################################################################
++***+*++******+;+**++;+;++++;;+;+++++++*****+****##**#######*****#############################################################################################
+++*+++,+*****+*++++*+;+++++++++;;;;+++++++***********####**###########################*#######################################################################
+*+++;;+;+;+;;+*+******+;+;;;;+++++++++++++++++++******########################################################################################################
++++++***++++++++*++++*+;;;;+++++++++;;;++++++++++******#######################################################################################################
*++*++*+++*****+++++++;;;+++++++++++++++++++++++++******#############################*#########################################################################
++**+++++++++++++***++:++++++++;;;++++++++++++++****************###############################################################################################
++++*++++++*++++++;;;;:+++;++;++++++++++++++++++*****************##############################################################################################
*****+++++++++++;;++:;;;++;;+++++++++++++++++******************###################*############################################################################
+++*+++++++++++++++++;:;++++++++++****************************###################*#############################################################################
++++++++++++++*++++++++;;+++++++++***************************################*##*##############################################################################
**++++++;+++++++++++++++;:;;++++++++*************************###############*##*###############################################################################
++++*+++++++++++*+++++++++;;;;;;++*+*+++********************########**#######*#################################################################################
*******+++++**+++*+*++++++++++;;;+++++*********************#####******#####*###################################################################################
#**#++**************+++++++++++++;;+++++++*************#########******###**####################################################################################
####***+********+++*++++++++++++++++++++++++++++*****#############***##*#######################################################################################
######**++*********+++++++++++++++++++++++++++******################**#########################################################################################
########****+++*******++++++++***+++++++++*******#########*#########*##########################################################################################
###########******+******#***++***+++++++++*****###############*################################################################################################
################****+***++++****++++++****#########*#####***###################################################################################################
$**##**+:,:::::;;;:;;::::;;;++++;++*****+;+++***#******###############**########################################################################################
**+++++,:::;;+++;:::;++++;++++*+++++++++++++**#*******##################*######################################################################################
+++;;;:,;;;;;:::,,:+++*****+;+++*++***++++++++**********#######################################################################################################
+;:+:::;:;;:,,;:.,:;+*++**+;++++++++****++*+++*#***#+++***#################*###################################################################################
;++;::::,,.,,,;+;:++++++++++++++++++++++*++++***####+++****####################################################################################################
++;:,::,,:;;;+++:+++++++++++++++++++++++********###**+***#*####################*###############################################################################
+:,.::,,:,::;;++:++;+++++;;;++++++***++++*****###***+++*########################*##############################################################################
,...,,,:::::;;;:+++++;++:::;+++++++*++**#*****##*****+######**################**#*#############################################################################
,,,::::::::::;;+++*+::++;+;+++++*+****##******##***++*######################******#############################################################################
,,,:::::::::;;;+;++++++++++;;;++****************##++*#######################*********##########################################################################
,,,:;::::::;;;++++++;+;+:::;:;++*+******+++*****#***#######*################********#*#########################################################################
,,,,::::::;;++++++;;;;;;,:,,::::;;+++********+++++########**################**********#########################################################################
,:,,,,::::;;++;++;:;;::,,;::;:;::;;*++++;+++;++***###########*############***********#*########################################################################
.. ..,::;;;;;:;;:;:::;:+++*++*+++++*+**+++**********####**################**************#######################################################################
 ,,.,,::;;;;+++;::;;;++++***+++++++++;+*************##***##################***********#*#######################################################################
,,,,:::::+++;;;++++++++*********++**************************###############*********#***#######################################################################
::,,,::+++++*******++*+*********++**++++*******************#*###############***********#*########.,;+**########################################################
;:,,,::++++****+++*+;+*+****************************++******################*************#######..:;++*########################################################
+::,::++*+++*+*+*+**+*+++***********************************##########################***#######*;;++**########################################################
+:::::+*++;*+.+*+++++++++***********************************#####*################******#######################################################################
+++:::;+++++;++*++;;++++++****************++++************########################****#########################################################################
+++++;:;+;+::;+++,.,,++++*++++**********+++++*+*********#######################################################################################################
++++*+**++:;++++;;,+;+++****************++++++*+********#######################################################################################################
++++,+***++*+;+++++;+;:,:+***************+++++******#***####**********##################*######################################################################
++++*+********:+++***+++*+#+*++**#+*++#+**********##****#######******#****#####################################################################################
+++**++++*******++**++++;;++++++++++++++************##**####*#**###############################################################################################
+++;*+++,+*******++++*+;++++++++++;+;+++++++************###############################*#######################################################################
+++++++++;+++;;;******+++;++;;;+++;+++++++++++++++******###############################*#######################################################################
++++++++++++++++*++++++++;+;;+++++++++;;+++++++++++*******############################*########################################################################
**+***+*;++******+++*++;;;++++++++++++++++++++++++******#############################*#########################################################################
++++***+++++++*+*+***++;++++++++++++++++++++++++++**************####################*##########################################################################
++*+*++*+++*#*+++++;+:;:++++++++++++++++++++++++++***************##################*###########################################################################
**++***++++*+*+++++++:;;;;++;++++*++++++++++++******************################*#*############################################################################
*+****++;+++++++++++++;;;;++++++++++**************************###################*#############################################################################
++++++++++++**+++*++++++;;++++++++****************************################*#*##############################################################################
**++++++;++++++++++++++++;:;++++++++*************************##################################################################################################
*+++++++++++++++**+++++++++;;;;;;+++++++++******************########**#######*#################################################################################
******+++++++***+**+*++++++++++;;;;+++********************########*****####*###################################################################################
#****+*****#***********+++++++++++++++++++**************##########*****##*#####################################################################################
####***+*************+++++++++++++++++++++++++++*****###############**#*#######################################################################################
######**+++*+*******++++++++++++++++++++++++++++****################**#########################################################################################
########*****++*******++++++++++**++++++++********#############################################################################################################
###########*******+**********++++*++++++++******##########*###*################################################################################################
################********++++*****+++++******#############***###################################################################################################
$***#*+++,,::;:;;;;:;::::;;++++;+;*+****+;;;+**###***#################**########################################################################################
***+;++::::;;+++;;:::;++++++++*+++++++*++++++***+******#################*######################################################################################
++++:;:,:;;;;;,::,:;++*****++++++++****++++++++**********#####*################################################################################################
++:;;::;+;;;,,:;:,,;++*+***+++++++++*****++*+++************####################################################################################################
:+++,;::,,,,,,,++;++++++++++++++++++++++**++++*#####**++****###################################################################################################
+++:::::,,::;++++:++++++++;+++++++++++++********####**+*****################*##*###############################################################################
;;:.,;;,:,:::;+++;++;+++++;;++++++****++++****####***++*########################*##############################################################################
,....,:,,::::;++:+++;;:+;:::+++++++**++*****#######*+**#####################****#*#############################################################################
,,::::::::::;;;++++*+;:+;++;+++++*+*************#*#**+######################*****#**###########################################################################
,,,,;:;:::::;;;;;;++++++;+++;;+++********##*****###++*######################*********##########################################################################
,,:,::::::::;;+++++++++;+;:;;:;+***+******++******+***######################********#*#########################################################################
,:,,:::::::;++++++;;;;;;+,,,:::::;;+++*********+++*#########################**********#########################################################################
.::,,,,:::;;+++;++;;:;;:,,;::::;;;;;**+++;+++++**##########################**********#*########################################################################
.......::;;;;;:;;:;:::;;++++++*++*++*+**+++*******#########################*************#######################################################################
..,..,:::;;;;+++;;:;;;;*++***+++++++++;+************####**#################***********#*#######################################################################
.,,,,:::;;+++++;;;;;+++**********+**++********************##################********#***#######################################################################
::,,,:::++++*******+++*+********++***+++********************#################**********#*########:,:++*########################################################
+::,,::+++++********++*++*****************************+*****#################*******##***#######+.,:;+**#######################################################
+;::,::+++*;++*+++*****+************************************########################*****########:;;++**#######################################################
+;::::;++++++*,++*++++++************************************######*###############******#######################################################################
+++;:::;+*++;;;+*+*+;++++++*****************+;+***********##########################**#########################################################################
+++++;;:;;;+;;;++*:..,;+++***+*+***********++++*+*******#######################################################################################################
++*+++*++*+;;;+++;;:+++;++***************+*++++++*********##############################*######################################################################
++**+;++****++;+++++++,;::+**************#*+++++**#*****########********################*######################################################################
++**+*++*******+*+****++++***+++*****++*+****************########*******################*######################################################################
++*****++++*****+++***+++++;++++++++++++++**********##**#######**##############################################################################################
*+*++++++;+********+++#+++++++++++++;+++++++*+**********###############################*#######################################################################
++++++++++++++++,****#**++;++;;;+++++++++++++++++++*******#############################*#######################################################################
++++*+;+**++++++++++++*+++;+;;++++++++++;+++++++++++******############################*########################################################################
***+**++*+++******+++++++;++++++++++++++++++++++++********###########################*#########################################################################
*++++***++++++++******;+;++++++++++++++++++++++++++***************#############################################################################################
++***+++++++++*+++++;+:;;++++;+++++++++++++++++++++***************#############################################################################################
******++*+***+*+++++++:;;;;+;;++++++++++++++++++****************################*#*############################################################################
******+++;+++++++++++++;:;+++++++++++**************************##################*#############################################################################
*+++++++++++++++++++++++;;;+++++++++**************************##################*##############################################################################
**++++++;;++++++++++++++++;;;+++++++++**********************##################*################################################################################
**+++*++++++++++++*+++++++++;;;;;;++++**++******************########****#####*#################################################################################
******+++++++***++#*+*+++++++++++;;+++++******************########*******######################################################################################
#****+******************+++++++++++++++++++*************###############*#*#####################################################################################
####***+**************++++++++++++++++++++**++++++****##############****#######################################################################################
######**#++**+********++++++++++++++++++++++********################**#########################################################################################
#########**+++++******#*+++++++++*++++++++++******#############*#####*#########################################################################################
############******+*******#***++**++++++++******##############*#*##############################################################################################
###############*********++********++++******#########*###***###################################################################################################
$***#++;+.:::::;;+;::;:::;;++++*++++****++++++***#*+**#**#############**########################################################################################
**++;++;::::;+++;;::::;+++;++++*++++++*+++++++*********#################*######################################################################################
++;+::::::;;;;;;:::,+++*****+++++*++****++++++++*********######################################################################################################
++;:+:::;;+;::,:;:,,;+**++#*+++++++++*****++*+++***+********###################################################################################################
;;++:::,:,,,,,,:++;+++++;+++++++++++++++***++++***###*******###################################################################################################
+++;:::::,::;;++++:++++++++;+++++++++++++*******####**++*#*####################*###############################################################################
;+;:.:;:,,:::;;+++;++;+++++;;++++++****++++***#####***++*#######################*##############################################################################
,,,. ..:,:,;::;++;*++++;++:;:;++++++*+*+**#***######***+####################****#*#############################################################################
,,,:,::::::::;;++++++++,++;+;+++++++************####*++*####################*****#**###########################################################################
,,:.::;::::::;;;;+++++++++;+++;++*********##*+**+###*+**####################*********##########################################################################
,,,,::::::::;;;+++++++++;+;:++:;;+********+++*********######**##############********#*#########################################################################
.,,,,:::::::;;++++++++++;;;:,::::::;++++*******++++*########################**********#########################################################################
 .;:,,,::::;;+++;+;+;;;::,,:;::::::;;+*++++++++++***########################*********#*########################################################################
.......,::;;;;;;:+;;:::;+;*++++**+*+*+***+**********########################************#######################################################################
,. ...,::;;;++;++;;;;;+++++****+++++++++++**********########################**********#*#######################################################################
:.,,,,:::;;+++++;;:;+++++***********+*********************##################********#***#######################################################################
+::,,:::;+++********+++*********++****++**********************################******#**#*#######**.:;+**#######################################################
++::,,::++++*********+++**************************************################******##***########..:;++*#######################################################
++::,,;:++++,+**+++*****+*************************************######################*****########++;++*+#######################################################
*+::::::++++*+++++++*+++************************************########################****############*##########################################################
+++;;:::;+**+;;+++*+++++*+++*****************++;+*********##########################**#########################################################################
++++++;:;+;++;+++++;..,,;+**+*+++***********++++**********#####################################################################################################
++++**+++*++;++++*:+;;*++++****************+++++++**+*****##############################*######################################################################
++++**++**+*++;+;+++*+;++::;**************#**++++*****################**################*######################################################################
****+***********+++******+++***++***#**++*+*********####***#######****##################*######################################################################
++*******+*******+++****+++;;+++++++++++++************##########**#############################################################################################
++++++*++++;******#*+++*++;++++++++++++++++++*************#############################*#######################################################################
+++++++++++++++**+****#**+++++;+;++++++++++++++++++*********###########################*#######################################################################
+;+++**;++*++++++++++++++++++;++++++++++++++++++++++********##########################*########################################################################
**+*+***+++;+*******+*+++;;;++++++++++++++++++++++++*******##########################*#########################################################################
**++++****++++++******#++;++++++++++;+++++++++++++++*************##############################################################################################
*++++++++++++++*+++++++:;++++++++++++++++++++++++++++*************################*############################################################################
****+***+*++++*+*++++++;;+;;;++++++*++++++++++++****************################*#*############################################################################
+********+:;++++++++++++;;;;++++++++++************************###################*#############################################################################
*++++++++++++++++++++++++;:;+++++++++**************************#################*##############################################################################
****+++++++++++++++++++++++;;;++++++++++********************##################*################################################################################
**+++**+++++++++++***++++++++;;;;;++++++++++****************######******#####*#################################################################################
**+++++++++++++**++*++*++++++++++;;;++++******************##########*****######################################################################################
#**#********************++++++++++*+++++++++************###############*#*#####################################################################################
####***++**************+++++++++++++++++++****+++++***##############**#*#######################################################################################
######****+++*********++++++++++++*+++++++**++********##############**#########################################################################################
#########**+++++*********+++++++++*+++++++++******#############*#####*#########################################################################################
############******+************+++++++++++******##############*#*##############################################################################################
###############*********++*********+++++******########**#***###################################################################################################
$*****+;+,::::::+;;;:;;:::;;+++;+;+++****++++++*#********#############**########################################################################################
***+;++;::;::;+++;;;:::+++++++++*+++++++++++++**#*******################*######################################################################################
++++;;;:,:;;;;+;;:,,:+++****+++++*++*****++++++++*********##############*######################################################################################
+++:::;:;+;+;::,+;,.:+++++***;+++++++******++++++*#*+#*+*****##################################################################################################
+;+++:;::,,,,,,,:;+;++++++++++++++++++++++**+++***#####*****###################################################################################################
++++;;:::,,::;;++++:++++++++;+++++++++++++******######**+***###################*###############################################################################
;+::,,:;,,,:::;;+++;++++++++;;++++++****+++*****####****+*######################*##############################################################################
;,,...,,,,::::;;++;++*;;;;+;::;+++++****++****#######***+###################****#*#############################################################################
,..,,,:::::::;;;++++*+;+:;+;++++++*+******##********#***####################****##**###########################################################################
,,:,:::;:::::;;;;+;++++++++++++:++++********#****+###*+*####################*********##########################################################################
,,,,::;;:::::;;;++++++++++++:;+;;;+++*******+++*********####################********#*#########################################################################
,,:,::::::::;;+++++++++++;;+::::::::;++++*******+++*+*######################**********#########################################################################
. :;,,::::::;++++++++;;;:;:,:;;;;:;;;;+*++++++++++##########################*********#*########################################################################
...,,, ,,::;;+;;+;;;:;::;;;+++*+**++*++****+++*****#########################************#######################################################################
.,, ...,::;;++++++;;;;;++++++***++++++++*++*********########################**********#*#######################################################################
+:.,,,,:::;+++++++;;;;+*++**********************************################********#***#######################################################################
;:::,,:::;++*********+++*********++***+++*********************################******#*##*#########.,;++*#######################################################
,;::,,,::++++*+*******+++*************************************################******##***########;.,;;+**######################################################
+++::,::;+++*+***+**+****+************************************######################*****#########;+;++*#######################################################
+++:::::;**+++;*+:++++++++************************************######################****############***########################################################
++++;;:::++**+;;+*+****++++++***+*************#++++*******#####################################################################################################
+++++++;:;+++++;+++++;.,:;++++*+**************+**+********#####################################################################################################
**+++++++**++++++++++;,+++;+*****************+++++++++****##############################*######################################################################
+++++*++**+**+;;+++++++++;+::+*****************++++*****##############****##############*######################################################################
++****+*+*******#*++******+++*+*+++******++*********######**##########**################*######################################################################
++++******+*******++++****++;+++++++;+++++++************##**######*############################################################################################
+++++*++#+++,********+++*+++;+++++++++++++++++**+*********#############################*#######################################################################
+**+*+*+++++++++**+;******+++++;++;+++++++++++++++********#############################*#######################################################################
++;+++**+++***++++++++++;*+;;++;++++++++++++++++++********############################*########################################################################
+++******++*+++******+++++;;;+++++++++++++++++++++++********#########################*#########################################################################
****+++****+++++++****+*++;+++++++++++++++++++++++++++************#############################################################################################
**+++***+++++++++++++;+;;;++++++;++++++++++++++++++++*************################*############################################################################
*****+**+**+++++++*+*+++;;++++++++++**++++++++++++**************################*#*############################################################################
*******+**+;;+++++++++++;;;;++++++++++*+**********************###################*#############################################################################
+++++++++++++++++++++*++++;;;+++++++++************************##################*##############################################################################
****++++++++;++++++*++++++++;;;;++++++++**********************################*################################################################################
****++++*+++++++*+++**++++++++;;;;;+++++****++**************########******###*#################################################################################
+**++++++++++++**+++*++*+++++++++++;++++++****************##########*****######################################################################################
#*****+********************+++++++++++++++++**************############**#*#####################################################################################
#####****+**************++++++++++++++++++++****++++***#############****#######################################################################################
######*#***+**+#********+++++++++++*++++++++**********##############**#########################################################################################
#########**+++++++********+++++++++*++++++**********###########*#####*#########################################################################################
############********##****###***+++*++++********##############*#*##############################################################################################
################********++**********++++******########**#***###################################################################################################
$***#*+:+::,::::;;;+;::;:::+:+++++++++****+;+++**###***###############**########################################################################################
***+++++:::;:;++++;;;;;;++++++++*+++*+***+++++***********###############*######################################################################################
+++++::::::;;;;;:;::,:+++****+++++*++*****++++++++********######*##############################################################################################
+++;:;:;,:+;;;::::;,,:;**+***+++++++++******++*+++***+#******##################################################################################################
++;++:::,:,,,,,,,;++:+++++++++++++++++++++***+++**#####*****###################################################################################################
++++;:;:::,,::;;++++;++++++*+;++++++++++++******#######*****###################*###############################################################################
:;+;:,,;::,,:;;;++++++++++++++;++++++****+++****#####***++*###############*#####*##############################################################################
,:,,..,..,,:::;;+++++*++;;;+;::;++++++****+*****######***+####################**#*#############################################################################
,.,,:,:::::::;;;;++++*+++:;+++++++**+*****##**********#***##################****##**###########################################################################
,.,,,:::;:::::;;;+++*;++++++++++;+++******##******+*##*+*#####################*******##########################################################################
,,,,:,,:::::::;;+++++++++++++;;;+:;+***+******++********######################******#*#########################################################################
.,.::,;::::::;;++++++++++++;+:;::::::;++++********++*+######################**********#########################################################################
...:::::::::;;+++++;++;;;;;:,:;:;;;;;;;+**++++++++****######################*********#*########################################################################
:....,..,,:;;++++;:;+;;;::;++++*++**+*++*+**+++*****#########################***********#######################################################################
;.., .,.,::;;++++++++;;;++++******++++++*+++********#########################*********#*#######################################################################
.::,.,,:::;;++++++++:;;++*+***********#*****************#####################*******#***#######################################################################
,;::,,,:::++++********++*********++***+++*****************##****##############******#**#*##########.:;+**######################################################
::;;:,,:::+++**+*******++**+**********************************#################***######*#########..:;++*######################################################
++++::,:;+++++++***+******+*************************************####################*****#########,;;++++######################################################
++++::,:;+**++++****++++++***********************************#######################****############**#########################################################
+++++;;:::++**++;+++**++++++++******************++;+******#####################################################################################################
++++**+;;:;++++++*++++;:,::+**++++#**+*********+++++******#####################################################################################################
++++++++****++++++*++:+;;+;+++****************++++++***+***#############################*######################################################################
+++***++****+*+;;;+++++++;++:;;+****************+++++*##################****############*######################################################################
++++**************+++*#****+++*+*++*****+*++********##################**################*######################################################################
;*+++*******+******++++#***+++;+;+++++++++++*************###*##################################################################################################
;;;+++++**++;;+*******+++*++;;+++++++++++++++++***********#############################*#######################################################################
*+****+++++++++++***++****#*++++++++++++++++++++++**********###########################*#######################################################################
+++;+++**+++++*++++++++;++++;;++;++++++++++++;++++********############################*########################################################################
+++++**+*+++*+++*******+*+++++++++++++++++++++++++++++******#########################*#########################################################################
+**+**++++*+++++**++*****++;+++++++++++++++++++++++++++***********#############################################################################################
***+*+***++*+++++**++++++;;;+++++++++++++++++++++++++++***********################*############################################################################
******+*++++*+**++***+++;;;+++++++++++++++++++++++**************################*#*############################################################################
*+******+**+++;++++++++++;;;;++++++++++++*********************###################*#############################################################################
++*+++++++++++++++++++**+++;;;;+++++++++**********************##################*##############################################################################
****++++++++++++++++*++++++++;;;;+++++++++********************################*################################################################################
******++*+++++++*+++**+++++++++;;;;;+++*++****+*************########******###*#################################################################################
++**++++++++++***++++**+*++++++++++++++++++***************##########******#####################################################################################
#**************++*****+******+++++++++++++++**+***********#############*#*#####################################################################################
##*##****+****************++++++++++++++++++****+++++***############*#**#######################################################################################
######*#**+*;**+#*******++++++++++++++++++++**********########*#####**#########################################################################################
########*##*++++++**********++++++++++++++++********###########*#####*#########################################################################################
############********+*#**********+++++++********##########*###*#*##############################################################################################
###############*********************++++******########**##*####################################################################################################
$***#*++;;,::::::+;+;::;::::+;++++++++****++++++***#*****#############**########################################################################################
**++;+++:::;::;++++;::;:++++++++++++****++*++++***#******###############*######################################################################################
*+++;;::::;:;;++;;::::+++*****++;+**+******++++++++********####################################################################################################
+++;:::;::;;;;+:,:;;,,;++*++**+++++++++*******+++++****#******#################################################################################################
++::+;;;,:,,,,,,::;++:++++++++++++++++++++****+++***####****###################################################################################################
++++;:;::::::::;;++++:++++++++;++++++++++*+*******######****###################*###############################################################################
:;+;:,,,;:::::;;;++++;+++++++++;++++++*#**+++*##**####******##############*#####*##############################################################################
,:,,,..,..,,:::;;+++++**;;+;+;;::++++++*+*+*+***#######***+###################**#*#############################################################################
,,...,,:::::::;;;+++++++++;:++++++++*+****########**####*+*#################*****#**###########################################################################
.,,,,:::;::::::;;++++*;++++++++++++++*****##****#*#**#*#+*####################****#**##########################################################################
,,,,::::::::::;;;+++++++++++++;;++:;;+*+******+++*********####################******#*#########################################################################
.,,,,:,:::::::;+++++++++++++++;;::::::;;+++******#+++*+*#####################*********#########################################################################
...,::::,::::;++++++;+++;;;;;:,:;:;;;;;;++*++++++++++*#######################********#*########################################################################
.,..,,,,..:,;;++++;;;+;;;::+*;**+*+**++*+****+*+******#######################***********#######################################################################
.:,,. ...,::;;++++++++;;;++++******+++++++**++******##########################********#########################################################################
.:,:..,,,:::;++++++++;:;+*****************+*************######################******#***#######################################################################
:;:::,,,::;**+*********+++*******+:+***+++********************##*###############****#**#*########## ,:++*######################################################
;,,:::,,::;++++*********+++************+++********************##################**######*#########..,:++*+#####################################################
++;+::,,,;+++++++**********+************************************####################*****#########*;+;++**#####################################################
++++:::::;+***+++*+*++++++++**********************************########################**############***########################################################
+++++;;;::;*****++++*+**+*+++++***************#***++++******###################################################################################################
+++++++;;:;+;+++++++*++*+,,:++++*+***************+**+*+*****###################################################################################################
++*+**#++#++*++++++*+++;+:++++++**********#*****+*++++**++**##############**############*######################################################################
:++++***++***#+++;;+++*+++++;+:;+***************#**++*+****#############****############*######################################################################
++++****#**+******#+++******+++++*++*********+********##################################*######################################################################
+;++++**************+++*+****+++;+++++++++++++********##**##**#################################################################################################
;+::++++*+***+++*******+++*+++;+++++++++++++++++******##**#############################*#######################################################################
**+****++++++++;++****++****+++++;+++++++++++++++++*********###########################*#######################################################################
**++++++*****++++++++++++++++;;+++++++++++++++++++++********##########################*########################################################################
*+*+++**++++++++++******+++++++++++++++++++++++++++++++*******#######################*#########################################################################
*+******++++**+++*++******;+++++++++++++++++++++++++++++**********#############################################################################################
**+++++*****+++++++++;+*++;;++++++++++++++++++++++++++++************##############*############################################################################
*******+*+***++***++**++++;;++++++++++++++++*+++++++************################*#*############################################################################
*************+++++++*+++++;;;;++++++++++++********************###################*#############################################################################
**++*+++**++++++++++++++**++;:;+++++++++++********************##################*##############################################################################
******+++++++++++++++++++++++;;;++++++++++++****************##################*################################################################################
********++*+++++++++++**++++++++;;;;;+++++******************##########****###*#################################################################################
:+***+++++++*******+++*+++*+++++++++++++++++****************##########****#####################################################################################
********+********++***********++++++++++++++++************##############**#####################################################################################
###*****+*+***************++++++++++++++++++++****++****############*#**#######################################################################################
######*****+*+************+++++++++++++++++++********###############**#########################################################################################
##########**++*+**+**********+++++++++++++++********###########*#####*#########################################################################################
############**********************++++++++*******#############*#*##############################################################################################
###############**********************++++*****#########*#**####################################################################################################
$***#*+;;+.::::::;;;;;:;;::;;;+++++;++*****+++++***##****#############**########################################################################################
**+++;++;::;::;;++;;;;:;;++++++++++++******+++++**#*******##############*######################################################################################
*+++++:::::;;;+++;;::::+++****+++++**+******+++++++*********############*######################################################################################
;++;::::;:;+++;;:,:;:,,;+**++*#+++++++++*******+++++***********################################################################################################
++::++:::,:,,,,,,,:;++:++++++++++++++++++++*********#####*****#################################################################################################
+;++++:;::::,:::;+++++;+++++++++++++++++++++******#######***###################*###############################################################################
;:+;::,,,::::::;;+++++;++++++++++;++++****+++*##**#####****+####################*##############################################################################
;::,,,.,,...,:::;+++++;**;:+++;;:;+++++*#+**+*****######****##################**#*#############################################################################
:,,..,:,::::::;;;;++++*++++;:+++++++*++***######*#**#####***##################***#**###########################################################################
:,.,:.:::;:::::;;;++++*;+++++++++++++++*******##*******#****##################****#**##########################################################################
.,,,:::::;:::::;++++++++++++++++;;+;;++++*****************####################******#*#########################################################################
,,,,:,,:::::::;;++++++++++++++++;::::::;;++++***+***++*+*#####################********#########################################################################
:.,.,:::::::::;+++++++++++;;;;:::+;;;;;;;++*+++++++++*+######################********#*########################################################################
::....,:,..:;;++++++;:+;;;;;++;+*******+*++***********########################**********#######################################################################
;;.,,. ...,;;;++++++++++;;++++******+++++++*+++*******########################********#########################################################################
,,,::..,,,::;;++++++++:;;++*+********++*****************######################******#***#######################################################################
+.+,;:,,,::;**+*********++********:+***+++******************####################****#**#*#########*+.:;+**#####################################################
+;:,::,,:::+**+++*******+++*********#***++********************##################**######*##########.,:;++*#####################################################
+++;+::,::;+++++++**+*******+*********************************##################**####***##########:;+++++#####################################################
;++++:::::;****++*+*++++++++**********************************########################**############*+**#######################################################
+++++;;;:::;****+;++**+****+++++********************++++****###################################################################################################
++++++++,;:;;++++++++*++*;,:;;*++++***++******#***+**+******###################################################################################################
++++**++*+*++*++++++++++:+;;*;++*****************+*++++***++**##########################*######################################################################
+;+*+****+****#+++;;;+++*++*;++:;;******************++++**################****##########*######################################################################
+*,;+*****#++#******+++*******++**+***********+*********################################*######################################################################
+*++***+**+**********++**+#***+++;;++++++++++++*******#########################################################################################################
++;,:++++*****++++******++*++++;;+++++++++++++++****+*****#############################*#######################################################################
++*+****++++++++;+*****++****+++++++++++++++++++++++********###########################*#######################################################################
**+++++++****+++++*+++++++++++;;;+++++++++++++++++++********##########################*########################################################################
**+*+++**++++++*+*++******+*++;+++++++++++++++++++++++++******#######################*#########################################################################
**+*****+++++++*+++*++**#**++;++++++++++++++++++++++++++++********#############################################################################################
***+*+++*+**++*+++++*+++++;;;+++++++++++++++++++++++++++************##############**###########################################################################
******++***+*+++**+++*+*++;;+++++++++++++*++++++++++**********##################*#*############################################################################
********#*****++++*+++*++++;;;;+++++++++++++******************###################*#############################################################################
****+++++***+++++++++++++**++;;;++++*++++++*******************##################*##############################################################################
*******++++++++++++++++*++++++;;;+++++++++++******************################*################################################################################
********+++*+++++++++*+*++++++++;;;;++++++******************############****#*#################################################################################
;++***++++++**++***++++**+**++++++++++++++++++**************############**#####################################################################################
#*+***************+++++*+*******+++++++++++++++***********###############*#####################################################################################
###*******++****************++*++++++++++++++++**********##############*#######################################################################################
######**#***+*+*+*#*******++++++++++++++++++++********##############**#########################################################################################
###########**+*+++#+**********++*+++++++++++********###########*#####*#########################################################################################
############********+++*#*****##****++++++*******#############*#*##############################################################################################
###############***********+*##********++++****###########***###################################################################################################
$***#*++;;.,,,:;:;;;;+;:;;:;;+++++;++*+****++++++**##******###########**########################################################################################
***+;;++;:::;::;;+++;;:;;;+++++++++++*******++++***********#############*######################################################################################
++++++;:::::;;;+;+;;:::;+++****+++;**++******+++++++****#***###################################################################################################
;++++,::;:::+++;;:,:;:,:++*+++*+++++++++********++++*#********#################################################################################################
+++::+,;;,;:,,,,,,,:;++:++++*+++++++++++++++********######****#################################################################################################
+++++;:;+:::::::;;;++++;++++++++++++++++++*+*******#######***##################*###############################################################################
;:++;::,:::::::;;;+++++;+++++++++;++++++***+++**########******################*#*##############################################################################
;:::,,,,,,..,,:;;;+++*+;#++;++++;;;+++++**+**+*****######****#################**#*#############################################################################
,:,..,,,::::::;;;;+++++*++*++:++;+++++*+****########*#**##***#################***#**###########################################################################
;,,,,,::,;;:::::;;;+++++;+++++++++++;+++******####*******#*+##################****#**##########################################################################
:,,,,:,:;:::::::;;++++++++++++++++++;;+++*+******+**********##################******#*#########################################################################
,,,,,,::;::::::;;++++++++++++++++;;:::;;;;++++******++++**####################********#########################################################################
;,,,,,::::::::;;+++++++;++++;;;;,:+:;;;+;;+++*++++*+++#*######################*******#*########################################################################
;,,,..,,,,,,;:;+++++++;++;+;;;+++++*****+*+*****+*******######################**********#######################################################################
;,+.,.. ...,;;;;++++++++++;+++++******++++++**++******########################********#########################################################################
;.;,::,.:,,:;;++++++++++;;++**************#***************####################******#***#######################################################################
,+:+,:,,:,::;***+********+++******+;*****+********************##################****#**#*###########.,;+*+#####################################################
+;::,,:,,:::+***+**+******++************++********************##################**####***##########..,;++*+####################################################
+++++;:,,::;**+++++**********+**********************************######################***##########;;+;+++*####################################################
++++++::,:;;*****+**+**++++++***********************************######################**############**+**######################################################
+++++*:;;:::+****++++*#*****#++++********************+++****###################################################################################################
++**+++*+,;:+;++++++**+*++*+::;+*+++****+*******#***+*++******#################################################################################################
.+**++**+*+*+*++++++*+*+++++:+++++********************+********#############**##########*######################################################################
++;+++**********+++++;++*++++++++:;+******************++++**##############****##########*######################################################################
++*:++****#**********++++********+++*+********************##############################*######################################################################
;+*++*++*+*+**+*******++***+****++++++++++++++**********#######################################################################################################
+*;+;;++*******++++***#*++++*+*++;+++++++++++++++*****+*###############################*#######################################################################
+;+*+*****+++++++;++********+*++++++++++++++++++++++++********#########################*#######################################################################
****+*++++***++++++++*++++*+;+;+;;+++++++++++++++++++*********########################*########################################################################
***+*+++**++++++****+******+++++++++++++++++++++++++++++******#######################*#########################################################################
***+*+****++++*+*+++**++****+++++++++++++++++++++++++++++++*******#############################################################################################
**+****+*+*+****++++++*+++++;;++++++++++++++++++++++++++************##############**###########################################################################
********+***+**++*++++**+++;;;++++++++++++******++++++**********################*#*############################################################################
***************++++++++*++++;;;;+++++++++++++*****************###################*#############################################################################
+*+++*++++****++*+++++++++***+;;++++++++++++******************##################*##############################################################################
********+++++++++++++****+++*++;;;++++++++********************############**##*################################################################################
+*********++++++++++++++**++++++++;;;;++++++****************############****#*#################################################################################
;;+****+++++++++****++++**++*+++++++++++++++++**************############**#####################################################################################
**+****+********+**+++***********+++++++++++++++**********###############*#####################################################################################
####*******+**+**************+++++**++++++++++++**********############**#######################################################################################
######********++#*#*********+++++++++++++++++++*******##########*###**#########################################################################################
########*##***++++**+#*********+++++++++++++*********##########*#####*#########################################################################################
############*****+****+*##***********++++++*******############*#*##############################################################################################
###############***********************+++++*****#########***###################################################################################################
$**##*++;+::,,::::;+;;;::;;:;;+;+++;++*+****++++++**##*****###########**########################################################################################
**+++++++:::;;::;++++;::;;++++++++++++*******+++****#*#*****############*######################################################################################
++;;+++:::::;;;;++;;::::;+++**#*+++;**+********++++*********###################################################################################################
;++++;:::;::;+++;;:::::,,++**++#++++++++*********++++*#*******#############*###################################################################################
+;+;:;::;:,;:,,,,,:::;++:++++*+++++++++++++++*****+**######***#################################################################################################
++;+++;;;:::::::::;+++++;++++++++++++++++++*+***##**#######***#################################################################################################
+;;+;;::,,::::::;;;++++++++++++++++;++++****+++*#########*****################*#*##############################################################################
;;:::::,,,,,,,,:;;++++#+;*++;+;++;:;+++++*******#***#######***################**#*#############################################################################
+::,...,,,:::::;;;;+++++*++#++;;++++++*++***###############***################***#**###########################################################################
;::,,,.;::;:::::;;;;++++++++++++++++*++++*****##**#*****###***##################*****##########################################################################
;,,,,::::;;:::::;;;+++++++++++++++++++;;;+*++*****+*********##################******#*#########################################################################
;.,,,,:,;;;:::::;;+++++++++++++++*;;::;;;;;++++***#***+++**###################********#########################################################################
;:.,,:,::::::::;;+++++++++++;;+;+::;+;;;;++;++*+++++++****####################*******#*########################################################################
;;:,,..,:,,,,::;+++++++;;+;+;;;+*;**+****+***+***+******######################**********#######################################################################
;:,,....  ..,;;;+++++++++++;+++++******+++++++**+*****#########################*******#########################################################################
;:,;,::, ::,::;+++++++*+++;+****+***********************#######################*****#***#######################################################################
+:;;:.:,,,:::+************++*******;**************************##################****#*##*##########*,.:;++*####################################################
++;,:.,:,,:::+************++************+++*******************###################*####***##########*..:;++**###################################################
+++++;:::,::;*+++++*********************************************######################***###########;+;;+*+####################################################
++++**::::::+*****++****++++++************************#*********#####################################*++**#####################################################
+++++++;:::,;+****++++******+*++++************#*****+*++++****#################################################################################################
++++*+++++::;+;++++++***+*+++;,;;+++++************************#################################################################################################
*.++*++***+;*+*+++++*+***++;+;;*;+++*********************+******############**##########*######################################################################
+**+**+*****+*+**+++++;+++#*++++++;;;+**************#***+++*##############******########*######################################################################
*+++;++*****+*********+++**#******++********##**************############################*######################################################################
;++****++*+*++**+******++***+****+++;+++++++++++**********#####################################################################################################
;+++;+++++*******+++*****++++*+*++;++++++++++++++++*******#############################*#######################################################################
*+;+**+****+*++*+++;+**********+++++++++++++++++++++++********#########################*#######################################################################
******++++****++++++++*+++++*++++;;;++++++++++++++++++********########################*########################################################################
+***+*+++**+++++++*******+***++++++++++++++++++++++++++++++***#######################*#########################################################################
***+**+****+++**++++++******#+++++++++++++++++++++++++++++******####***########################################################################################
*****+****+++***+*+*++***+++;;;+++++++++++++++++++++++++++******##################**###########################################################################
********+++**+**++**+++****+;;++++++++++++++**+***************####################*############################################################################
**++************+++++*+++*+++;;;++++++++++++++****************###################*#############################################################################
*+++++****+****+++++++++++++**+;;+++++++****++****************##############**##*##############################################################################
*********+++++++++++++*****+++++;;;+++++++++******************############**##*################################################################################
++********+++++++++++++++***++++++;;+++++++++***************############****###################################################################################
;;+*****++++**++++**++++++**++*+++++++++++++++**************############*######################################################################################
**++****+*******++**++*+++********+++++++++++++++*********###############*#####################################################################################
####******#+*+*******************+*++++++++++++++*********#############*#######################################################################################
######*********+**+#*********+++++++++++++++++*********#############**#########################################################################################
#########*#****+*++*******#*****++++++++++++**********#########*#####*#########################################################################################
############*****++***++******###*****++++++******############*#*##############################################################################################
###############*************************++******#########***###################################################################################################
$**###++;;;::,::::;;;;;;::;;::;++++;++*++***+++++****##****###########**########################################################################################
***+++;++:::;;;:;;++++;;;;;+++++++++++*******+++++**********############*######################################################################################
*+;+;+;+:::::;;;+++;;;:::;+++***+++++*++********++++******#**##################################################################################################
;;++++::;;::;++++;::::;:::++*+*+*++++++++*********++++##**#****############*###################################################################################
++++::;,;;:::,,:,,,,::;++:++++*+++++++++++++++*******#######**#################################################################################################
++++++;;:;::::::::;;+++++;++++*++++++++++++**+******########***################################################################################################
+;;;+:;:;,,::::::;;++++++;+++++++++++++++****+++##########*****################**##############################################################################
+::::,:::,::,,,,::;+++**+;#++;++++;;;;++*************#######***###############**#*#############################################################################
+;,:,,,.,,:,::::;;;;+++++*++*+;;;+;++++*+*****########**#*##***###############***#**###########################################################################
+;,:,,,,;::;::::;;;;++++*++;+++++++++*++++****######*#****##**##################**#**##########################################################################
:,,,,,,:,;;;::::;;;;+++++++++++++++++++;++++**********##*****###################****#*#########################################################################
+:..,,:::;;:::::;;;+++++++++++++++++;;:;;;;;;+++****++*++++*####################******#########################################################################
:;,.,,:,::::::;;;;++++++++++++;+++;::+;;;;++;++**++++**+***####################******#*########################################################################
++.,,,..,:,,,,:;;++++++++;++;+;;++++*******+*****#+*******#####################*********#######################################################################
;;,;...... .,.:;;+++++++++++++++++******++++++***+****##########################******#########################################################################
;;,;,,::,.,:,:;;++++++**++;;++************************##########################****#***#######################################################################
;;,,;:,:..,:::+************++******++*****+*****************#####################***#*##*##########** ,:+++####################################################
+++;:;.,,,,:;:**************+************+++******************###################***##***########### .,:++++###################################################
+++*;++,:,,:;+*++++*+*****+***+*********************************########################*###########.;++++*+###################################################
+++++++;::::;+******++***+++++**********************************####################################*#++**#####################################################
++++++*+;:::,:*****+++*+*******++++********************+++****#################################################################################################
++++**+++*+:,;++++++++******+*+::+++++*****************+********###############################################################################################
*+,+***+****+;+*++++++**+++++;+:+++++***************#****+*******###########****########*######################################################################
+++#+++++;*******#++++++++***+++++++:;;+**************#**+****##############****########*######################################################################
+**+++++**************++++#*********+++*******#*************############**##############*######################################################################
++*++******+**++********++****+***+++++++++++++++*********#####################################################################################################
+;;*+;+:+++*******++++**#*++++*+++++;+++++++++++++++******#############################*#######################################################################
++++++*******+*+*+++;++******+**++++++++++++++++++++**++********#######################*#######################################################################
*******+**+****+++++++++*++++++++;;;+;+++++++++++++++++*******######################*#*########################################################################
++****+++++++++*+++****+**++***+++++++++++++++++++++++++++******#####################*#########################################################################
*+*++**+*****+****+*+++******#+++++++++++++++++++++++++++*******####**#########################################################################################
+*****+*+*++*+****+++*++**++;+;;++++++++++++++++++++++++++******##################*############################################################################
**********+*+*++***+++++****++;+++++++++++++++****************##################*#*############################################################################
****+*************++++*+++**++;;;+++++++++++*+++**************###################*#############################################################################
*+++*+****+******+++++++++++++**;;+++++++***++++**************##############**##*##############################################################################
**********++++**+++++++*****++++++;;+++++++++***************##############**##*################################################################################
************++*+++++++++**+**+**+++;++++++++++**************##############***##################################################################################
;:++******+++**+++++++++*+******++++++++++++++++**********##############*######################################################################################
**+;+****+************++++**********++++++++++++**********###############*#####################################################################################
###****+****+*********#*************++++++++++++************##########**#######################################################################################
######********+*+*************++++++++++++++++********##############**#########################################################################################
#########*******++++**+**************+++++++**********#########*#####*#########################################################################################
############************+*******####****++++*******###########*#*##############################################################################################
###############**************************+******##########**###################################################################################################
$**###++;:;,::,::::;;;;;;:;;;:;;+++++++++****+++++****#****###########**########################################################################################
***++++++;:::+;::;;+++;;;;;;++++++++++*********+++****##*****###########*######################################################################################
*+;;++;+::::;;:;;+++;+;::;;+++***+++++#+**********+*+*****##**#################################################################################################
;:++;+;:,;;::;++++;;,:,;::;++**+++++++++++*********+*+**#**#****###########*###################################################################################
++++;,::;;:::::,::,,:::;++:+++**++++++++++++++********#######**################################################################################################
++++++++;;;;:::::::::;++++;++++*++++++++++++**********#######***###############################################################################################
++;;++:::;,,:::::;+;++++++;;+++++++++++++++**++++*##########****###############**##############################################################################
+;;,,,:::,,:::,,::;;+++***+*++;+++++;;;+++**+*******#*#######***##############**#*#############################################################################
++::,,..,,,,::;;;;;;+++++*++***+;;++++++*+****#########*#####***##############**##**###########################################################################
:;::,,,.;:::;:::;;;;;++++*++;+++++++++**++******#####***##**#**#################**#**##########################################################################
;;...,,:::;;;:::;;;;+++++++++++++++++++++;;++++*********##****##################****#*#########################################################################
;+,.,,,,::;;::::;;;+++++++++++++++*++;;:;;;;;+++++****+*++++*###################******#########################################################################
:::..,:,,::::::::;;+++++++++++++++;+::++++++++++**+*;+*++#**####################*****#*########################################################################
:;+,,.,...:,::,:;+++++++++;++;;++++*+*******+*****#*+**#**######################********#######################################################################
;++,;,,.... ..,:;;++++++++++++++++++******++++++******##########################******#########################################################################
;;:.+.,::,..::,:;;++++++++++;+++**+*******##******##**##########################****#***#######################################################################
:;+:,;:,,,.,:::+****+*******++****#*+***#*********************####################**#*##*############,,:;+*+###################################################
++++,;:.,,,,:::+****+*******++***********+++******************####################**##***###########:.,:;++**##################################################
++++++++,,,,::*****++++*********+*******************************########################*###########*:;+;+++###################################################
++++++++,,:::;*******++***++++++********************************######################################++++*####################################################
+++++++*+;::::;*****++++********++;+******************+**+++**#################################################################################################
*+++****++++;,;+++++++++***+***+;:;;++++************************###############################################################################################
;++,++**+***++,+++++++******+++++:*++++***************#*********##############**#########*#####################################################################
*+*+*+**+;+********++++++++*****++++;+;;+*************###**+#**#############****########*######################################################################
++++*+*#++*************++++*********+*+*******###***********############################*######################################################################
++*+++*********++**+*****++*******#+++++++++++++++**********###################################################################################################
+++;+*;:++++******#*+++****++++*++++++++++++++++++++++******###########################*#######################################################################
+++++++++******++*#+++;+*********++++++++++++++++++++++++*****#########################*#######################################################################
++******+**+*****++++++++++++++*+++;;++++++++++++++++++++*******######################*########################################################################
+++*****++++*+++**++********+++*++++++++++++++++++++++++++******####**###############*#########################################################################
+++*++**+**********++*++*******++++++++++*++++++++++++++++******####**#########################################################################################
****+*#+****++++****++*+++**++;;;+++++++++++++++++++++++++******####**############*############################################################################
**********++**#*+**++*+++++**++++++++++++++++++***************##################*#*############################################################################
***+****************+****++**++;;++++++++++++++++***********#*###################*#############################################################################
**+****+**********+++++++++++++**+;+++++++*****++*************##################*##############################################################################
***********+++++++++++++****+*+++++;+++++++++++*************##############***#**###############################################################################
+***+*********++++++++++++****+**+++++++++++++++************##############***##################################################################################
;::+********++***+++++++++++******++++++++++++++**********#####################################################################################################
#*+;;+****++**********++++++**********++++++++++++**********#############*#####################################################################################
####*+*******+*********###********++*+++++++++++++**********###########+#######################################################################################
######**+********+*#************++++++++++++++********##############**#########################################################################################
#########***#***++++********************++++********###########*###############################################################################################
############******+++***++******######**++++*******###########*#*##############################################################################################
###############*********************************##########**###################################################################################################
$**##*++;;:,::,::::;;;;;;;;;;:;;+++++++*++***++++++***##***###########**########################################################################################
***+++;+*+::;:;;:;;;+++;;;;;+++++++++++********+++****##*****###########*######################################################################################
*+;;+++++:::::;:;++++;;;:::;++****++++**+*****************##**#################################################################################################
::+++++:::;;::;+++;;;,,:;:,;+**+++++++++++**********+++*##*##***###########*###################################################################################
+++++:;::;;:::::,:,,:::;;++:+++*+++++++++++++++*********######**###############################################################################################
++++++++;;;;:,::::::;;+++++;+++++++++++++++++*+****###########**############*##*###############################################################################
++;;;+;:,;:,::::::;;;++++++;+++++++++++++++***+++*##########****############*##**##############################################################################
++;;:,,:::,,::::::;;++++#**++++;+++++;;;++*************#######**#################*#############################################################################
,++,:,,,.,,,,::;;;;;++++++*++***+;;++++++*******########**#*##**##################**###########################################################################
,;+:,,,,.;::::::;;;;;+++++*++++++++++++**+++****#####****###****################**#**##########################################################################
;;,,,.,,:::;;::;;;;;;++++++++++++++++*++++;+++++*********#*****#################****#*#########################################################################
:;:,,,,:::;;;:::;;;;++++++++++++++++**+;;;;;;;;++++*+*++*++*+*##################******#########################################################################
::::.,,:,,:::::::;+++++++++++++++++++;:;+++++++++**++++**+*#*###################*****#*########################################################################
::;:,..,,.,:,::::;++++++++++++;++;;++;+*********************####################********#######################################################################
;;+;;.,,.......,;;;++++++++++++++++++*******+++++*******########################******#########################################################################
;;;:,;.,:,,.,::,;;;++++++++++++++*********#***********##########################****#***#######################################################################
:;++::;;,,...:::************+++*****+***#*********************####################**#*##*############*.,;+++###################################################
+++++:;:..::,::;*************++***#***##*+++******************####################**####*############..,:;+++##################################################
++++*+;+;,,,::;*****++******++***+******************************########################*############.;++++*+##################################################
++++*++++::::::*******++*+*+++++********************************######################################++++**###################################################
******++++;;:::;*****++++********+++**************#******+*++***###############################################################################################
++*++***++++;;:;+++++++++***+****+::;;++********************+*****#############################################################################################
++**:+***+***++:+++++++*****++*+++:+++++****************#*******##############****#######*#####################################################################
+*+++++*+*:********+++++++++**#*+++*+++:;+******************+**###############****######*######################################################################
#+****++*++*************++++***********+*******#************############################*######################################################################
+++++++**********;**+****+++*****+**+++++++++++++++*******#**##################################################################################################
++++++*+:;++++********++****+++**++++++++++++++++++++++******##########################*#######################################################################
++++*+++++****+*++**++*+++******+*++++++++++++++++++++++++****#########################*#######################################################################
*+***********+****++++++++**++*+*+;+;;++++++++++*++++++++*******######################*########################################################################
++++****+++++++++*#++***#*****++*++++++++++++++++++++++++++******####################*#########################################################################
*+++*+**************++*++***+***++++++*+++**++++++++++++++*******#######*######################################################################################
*+******+*****+++****++*+++**++;;;++++++++++++++++++++++++****######**#############*###########################################################################
************+*+*****+++++++****+++++++++++++++++**************##################*#*############################################################################
***++****************+++**+++**+;;;+++++++++++++++**********#*###################*#############################################################################
****++++************++++++++++++++++++++++++****++************##################*##############################################################################
***********+++++*+++++++++*****+++++;+++++++++++************#################***###############################################################################
+***************+++++++++++**+****+++++++++++++++***********##############***##################################################################################
:,,;**************+++++++++++***+**+++++++++++++++**********###################################################################################################
#*+;:+++***+++++**++++++++++**********+++++++++++++*********#############*#####################################################################################
##***++*****#*+***********************++++++++++++************#########+#######################################################################################
######************+*************++**++***+++++**********############**#########################################################################################
#########*********#+****************++***++++*******###########*###############################################################################################
############******++*****++*******####***+++********##########*#*##############################################################################################
###############*******+*************************##########*####################################################################################################
$**##*+*;;;::,,:,::;;;+;;;;:;:;;;+++++++**+***+++++****##****#########**########################################################################################
***++++;++::;:;;;:;;++++;;;;++++++++++++********++************##########*######################################################################################
++;;;;+;+:,::::;;;++++;+;;;;+++***+++++*+***************#***###################################################################################################
;:+++;++::;;;::;+++;;:,::;::++**+++++++++++**********+++*#**##**###############################################################################################
++++++:;,;;::::::,::::::;+++;+++*++++++++++++++*********#######################################################################################################
++++++;+;;;;;::::::::;;+++++;+++*++++++++++++*******##########***###########*##*###############################################################################
+++;++;;::;:,,:::::;++++++++++++++++++++++++***+++*###########***###########*##**##############################################################################
+++;::,:::::,,::::;;;++++*+*;++++;+++++;;+++**#*******#*######***################*#############################################################################
;;+;,,,,,.,,,,:;;;;;;++++++*++**++;;+++++++*****#########*#####**#################**###########################################################################
:,;;:,,,,:::::::;;;;;;+++++*++++*+++++++**++++****#####***##*****###############*****##########################################################################
;;;,,..,,::;;;::;;;;++++++++++++++++++*++++++++++*******####****################****#*#########################################################################
::;,,,,,:::;;:::;;;;;+++++++++++++++*+++;;;;;;;+++++**+*+++++*##################******#########################################################################
;;;:,.,::,,:::::;;;;+++++++++++++++++++::++++++++++****+**+***##################*****#*########################################################################
+:;+..,,,..,::::::;;+++++++++;++++++++++*******+******+**#######################********#######################################################################
++++,;.,,.....,.,:;;++++++++++++++++*+*******++++++*****########################******#########################################################################
;;;;,;,,::,,,.::::+;++++++++++;+++**+********#****###############################***#***#######################################################################
::;++,;::.,,..::;***********++++****************************#*####################**#*##*############*.,:;+++*#################################################
;++++;;;,,.:::::+*************++#**#**###*++******************##########################*############..,:;++++#################################################
++++*++++:,,,:;;********+***************************************########################*############::+++++**#################################################
++***+*+++:,,:;;*********+**+++++****************************+**#######################################++++*###################################################
++****+*++;;;::;+*****+++*+***#***++++***********************+***##############################################################################################
**********+*+;;:+++++++++*****+*++++:;;+++*#**********************#############################################################################################
**++*+*****+***+;+++++++*****+++*+++:*++++****************#*****################**#######*#####################################################################
+;*+*+++***+++**#+**++++++++++**#**++++++;++*********************#############*****#####*######################################################################
*++;**#+++*+********+****+++*##*******+*+*******************############################*######################################################################
;+;+***++*********++******+++*******#+++++++++++++++****#*****#################################################################################################
+++++++**;+++*+**************++*+**+++++++++++++++++++********#########################*#######################################################################
**++++++++++**#*+*++**+++;+********+++++++++++++++*+++**++****#########################*#######################################################################
**+****+***+**+****+++++++++*+++++*+++;+++++++++++*+++++++******####################*#*########################################################################
++********++*+++++**++++**#****++*++++++++++++++++++++++**********###################*#########################################################################
+*++*+++****+********+++*+++*****+++++++++++**++++++++++++********#############################################################################################
***#**+**+****************++***+;+++++++++++++++++++++++++******####****###########*###########################################################################
************#++****+**++++++***++++++++++++++++++*************##################*#*############################################################################
*********************+++++**++**++;+++++++++++++++++******#######################*#############################################################################
**********************+++++++++++++++++++++++******+**********##############**##*##############################################################################
********++**++++**++++++++*******++++++++++++++++***********##################*################################################################################
****#+************++++++++++**+*++**++++++++++++++**********#################*#################################################################################
;:,:+**************+++++++++*+******+++++++++++++++*********###################################################################################################
***;;;++****++++++++++++++++************++++++++++********##**###########*#####################################################################################
###*#+++*****************#*****************++++++*************#########+#######################################################################################
######************+***************++*****++++++*******##############**#########################################################################################
#########*****#****+++****#**************+++++******###########*###############################################################################################
############+*******+*****+*******######**++********##########*#*##############################################################################################
###############****+**********************+******#########*####################################################################################################
$**##*++++:;::,,:,;;;:;;;;;::;;;;;++++++++*****+++++****#****#########**########################################################################################
***+++++++;,:;:+;::;;;+++;;;++++++++++++*********+++****##****##########*######################################################################################
+++;;+;;+;,:::;;;;++++;;;:;;;+++***+++++*+*****************####################################################################################################
+:;+++++;,;;;;::++++;;:::::::;+**+++++++++++##********++**##*##################################################################################################
++++++;:,:;;:;::;::::::::;;++:+++*++++++++++++++*********#######*##############################################################################################
+++++;+++;;;;;::::::::;;+++++;+++*++++++++++++*******###########**##########*##*###############################################################################
++++;++;;::;:,::::::;++++++++;++++++++++;++++***+++*############**#############**##############################################################################
;++;+:,,::;::,::::;;;;++++***+++++;+++++;;++********##***#######**###############*#############################################################################
;;++::,,,,,.,,,:;;;;;;++++++*++*++++;;++++++******##########*###**################**###########################################################################
:::+::,,..;:::::;:;;;;+++++*+++++*+++++++*#+++******####***###***###############*****##########################################################################
:;+;,,.,.,::;;;:;:;;;++++++++++++++++++**+++;+++++*******###*****###############****#*#########################################################################
;::;,,,,,:,:;;::;;;;+++++++++++++++++*+++;;;;;;;+++++**+****+***################******#########################################################################
;;;;,,.,:::,:::::;;;++++++++++++++++++++;;++++++++++**+*+******#################*****#*########################################################################
++;;;..,,,,.,,::;;:;++++++++++;+++++++++++******+******+**#######################*******#######################################################################
+++++::,,,...,..,.,;+++++++++++++*++++*+******++++++******#######################*****#########################################################################
;;;+:.;,.,,,,, :;;:;+;++++++++++++++************##******##########################**#***#######################################################################
+:,:++:;,:,:,.,,;;************+++#*#**####******************#*#######################*##*###########*#+ ,:++*##################################################
,:;;++:;;,:.,,:::+******+******++#**+*##**++******************##########################*############*..::++++#################################################
;;++++++*+:,.,:;;***********************************************########################*#############,;++++*+#################################################
++++**++++;:,,:;+************+++++****************************+***#####################################;++++*##################################################
++******+++;;;::;+*****+++******#**++++***************************#############################################################################################
************+;;;;+;+++++++*********++;;;++**************************###########################################################################################
****++++****+***+;+++++++******++**;+;++++++**************##******##############****####*######################################################################
++;*+**++****+*****#*+++++++++++****+**+++++++************##****##################*#####*######################################################################
+**+:+**++;*********#+****++++**##*******+***#*#*#************##########################*######################################################################
+++++**+*+*++*******+******+++******+*++++++++++++++************###############################################################################################
*++++++++*+;+**++*************+++**+*+++++++++++++++**+*******#########################*#######################################################################
**+++++*+++++++**+*+++*+*+*;+******+++++++++++++++++*++*********#######################*#######################################################################
***+***++***+*+******+++++++++*++++++;+++++++++++++*++**+++*******##################*#*########################################################################
**++********+++++++***++****#*****++++++++++++++++++++++++**********#################*#########################################################################
+**+++********+********++*++******+++++++++++***++++++++++**********###########################################################################################
****#*****++******++*****+++****+;++++++++++**++++++++++**********#################*###########################################################################
**************++*******+*+++++**++++++++++++++++++************##################*#*############################################################################
*************************+++*++**+++++++++++++++++**********#####################*#############################################################################
*****+******************+++++++++++++++++++++++***************##############**##*##############################################################################
#***********++++****++**++++******+++++++++++++++++*********##################*################################################################################
******************++++++++++++++**++*++++++++++++++*********#################*#################################################################################
+::;++**************++++++++*++*******++++++++++++++********###################################################################################################
#**;;;+++****+++++++++++++++++*************+++++++********##****#########*#####################################################################################
###**+;+****+*#*+***********##********++****++++++******##****#########+#######################################################################################
######**+*********++****************++*****+++++******##############**#########################################################################################
########******##**#+++**********#**********+++********#########*###############################################################################################
############********++**++*+******######****++******##########*#*##############################################################################################
###############****+****+************************#########*####################################################################################################
$**##*+;+;:;:::,:::;;;;+;;;;;:+:;;+++++;++***#*++++*****##***#########**########################################################################################
***+++++:++:::::;;:;;;++++;;;++++++++++++*********+*+****#**############*######################################################################################
++++;+;+;+::;:::;:;+++++;;;;;;+++**++++++++***************##*##################################################################################################
+;;;++++;:::;;:::++++;+::::;::;+**+*++++++++*#**********+*######**#############################################################################################
;++++++;:,:;::;:;:::::::::;;++;++*++++++++++++++**********#####################################################################################################
++++++;+++;;;;::::;::::;:+++++;+++*++++++++++++*****############**##########*##*###############################################################################
++++;+++;::;;:,::::::;++++++++++++++++++++++++**+++**###########***#############*##############################################################################
++++;;::,:;;::,,:::::;++++****+;++++++++;;++++******#*****########*##############*#############################################################################
;;;++,::,,,.,,,,:;;;;;+++++++*+*#*+++;;++++*+*#***##########**###**###############**###########################################################################
;:::::,,., ;:,;:::;;;;;;++++#+++++++++++++***+++****#####***####**##############*****##########################################################################
::;+,:,,,,:::;;;::;;;;+++++++++++++++++***++++++++++******#####**###############****#*#########################################################################
;;;;,,,,,,::+;;;;:;;;+++++++++++++++++**+*++;;;;;+++++**+++*****################******#########################################################################
+;;;;..,,::,,;::;:;;;++++++++++++++++++++;;;+++++++++**+#+******#################****#*########################################################################
+++;;,,,,,,,.,:::;;;++++++++++++;+++++++++****************#######################*******#######################################################################
++;++:+,,,,....,.,.::+++++++++++++**+++*+*****#*+++++*#***#######################*****#########################################################################
;;;;+;.;,,:,,,,.,::,++;++++++++++*+++***************##**##########################**#***#######################################################################
:;;::;+;;::.,,,,,:+************+++*****#********************#########################*##*############## ,:;+*+#################################################
::;;;++;:;,:.,::::+*************++**++###**++*****************##########################*#############..,:;+++;################################################
:;:;++++++::,.,:;;*******+****************************************######################*#############.:;++++*+################################################
++++****+*+;::,:;+************+++++******###*******************+**#####################################*;++++*#################################################
*+++****++++;:;:::+*****+++**********++++***************************###########################################################################################
*************+;;;:+++++++++**+***+**+++;;;++#***********************##############**###########################################################################
******++*********+++++++++********+++++;+++++***************##****##############****####*######################################################################
;*+,*+*+++****+***#**#+++++++++++****+*+*++*++++**********####**########################*######################################################################
*+**+;****++#*+********+***+++*#******##**+*******************##########################*######################################################################
++++*+**++**++**********+#**+++*******+++++++++++++++******#*****##############################################################################################
*++;+*++;+**;**+*+*********++**++*+*+*+++++++++++++++***********#######################*#######################################################################
++*+++*++*++;;++**++**+**+++;+******#+++++++++++++++***+********#######################*#######################################################################
*+***+**++************++++++++++*+**+++;++++++++++++**+***********####################*########################################################################
***+*********+*+++****#*++********+*++++++++++++++*+++++++**********#################*#########################################################################
*+*+***+***+***+++*******++*++****++++++++**++**++++++++++**********####***####################################################################################
****#*+#***++*******+*#*#***+++***++++++++++++++*++++*************#############################################################################################
************#***********+++++++***+++++++++++++++++***********##################*#*############################################################################
******************+******+*++***++++++++++++++++++**********#####################*#############################################################################
******+******************++++*++++++++++++++++++************################**##*##############################################################################
+******+*******++*+**+++**+++*******++++++++++++++++********##################*################################################################################
******#*************+++++++++++******+*+++++++++++++********#################*#################################################################################
+;+;*+****************+++++++***+*******++++++++++**********###################################################################################################
#**+;;;+++****++++++++++********************++++++********##****#########*#####################################################################################
###*#*+;*****+**************##******#********+++++******####**#########*#######################################################################################
######*++************+****#*****************+++++*******############**#########################################################################################
#########***+*###***+*++**+*****************+++*******#########*###############################################################################################
############*********++***++++******######**++******##########*#*##############################################################################################
###############****+++****************************########*####################################################################################################
$####*+++:;:,,:,,,:;;;;;;;;;;;;;;;+++++++*******++++*****##**#########**########################################################################################
#*++;+++;++:::::++;;;;;;+++;;;+++++*++++++*********+******##############*######################################################################################
*+++;++;;+;,::;;:;;;++++;;;;;;;+++**++++**+*****************###################################################################################################
++;;+++++;,:;:;::;++++;+::::;::;+**++++++++++***************###################################################################################################
;+++++++::,:;:;::;;:;;:::::;;++;++*+++++++++++++**********#####################################################################################################
++++++++;+;;;;;:::;:::::;:++++++++**+++++++++++***################*#########*##*###############################################################################
+++++;++;;::;;:,:::::;;+++++++++++++++++++++++***++***##########################*##############################################################################
+++++;;,:::;;:,,::;;;;;;++++***+;+++++++++++;+********###########################*#############################################################################
++;+++,:,,,,.,.,,::;;;;;+++++*++**++*+;+++++*+******##########*###*###############**###########################################################################
+;::+:;,,,,,::,:::;;;;;;+++++*++++++++++++****+++***######***######################**##########################################################################
:;:++,::,,,,:;;;::;;;;++++++++++++++++++*+*+;++++++++******###****################**#*#########################################################################
;;;;:.,,,,,:,;;;::;;;;+++++++++++++++++**+*++;+++++++++***********###############*****#########################################################################
:+;+;;,,,,::::;:;:;;;++++++++++++++++++++++;;+++++++++****+****##################****#*########################################################################
:++;;;,..,,,,..,::;;;;++++++++++++++++++++*+****************######################*****########################################################################
+++++;:+.,,,,,.,,,,,,:;+++++++++++***++++++*****#++++++*#***######################****#########################################################################
;;+;;;+,.,,:,,,,,.:::;;+++++++++++**++************##******########################**#***#######################################################################
;;;;:;;:+;::.,:,,,:+************++*#****##******************########################**##*##############;.,:;+++*###############################################
+;;:;;+;+:;,,,,,::;+*************++**+**#**++*****************######################**##*#############+.,,;;+*+*###############################################
;:;;+++++++;:,,,:;+*****************+*****************************######################*##############,;++++*+################################################
++++++***+*+;::,:;+************++++******************************+**####################################;+++*+#################################################
+++++******++;;;::;+*****+++***+***#*+++*+**************************###########################################################################################
**************+;::;+++++++++*******+*+*+;;;++***********************##############**###########################################################################
*******+++****+**+++;++++++*******+++++++;*+*+****##********##******############*****####*#####################################################################
;+**;*++*+,+***********+++++++++++*******+++;*+++*******################################*######################################################################
**++++++****;;***********+**++++*****#****#+*++*##*#**********##########################*######################################################################
+*++*+++**++*+++**********+**+++#*******++++++++++++++************#############################################################################################
***+++++;+;++++**+**************+++**+*+++++++++++*++++*********#######################*#######################################################################
**+++**+++**++;;;++*+*++**++++;+******++++++++++++++++**+*******#######################*#######################################################################
**+***+***++************+++++++++**+*++++;++++++*+++****************################*#*########################################################################
****+**********++++++****++*********++++++++++++++++++****************###############*#########################################################################
+*+++***+****+**+++*******++*++*+***++++++++********++++**************##**#####################################################################################
*+**#*****#*+*********+*#*#**+++**++++++++++++++++++++************######**#####################################################################################
***+*********#*+#*+*****++++++++***+++++++++++++++++**********##################*#*############################################################################
********##*****************+++**+++++++++++++++++***********#####################*#############################################################################
*******#**************+****++++*+++++++++++++++++***********################**##*##############################################################################
*+******+*************++**+++++******+++++++++++++++**********################*################################################################################
+*******************+++++++++++++**+***+++++++++++++********#################*#################################################################################
+;+++*+*************+**+++++++****+******+++++++++********#####################################################################################################
#*#+:;;;++******++++++++++++**++*************++++++*******####****#######*#####################################################################################
###***+;;++****************#********##*******+++++********##**#########*#######################################################################################
######**++**********+*+#**##*****************++++*******############**#########################################################################################
########****++*#*****+*++*********#*##******++++******#########*###############################################################################################
############**********++**++++******#######*********##########*#*##############################################################################################
###############***++++****************************########*####################################################################################################
$*###*+++;;::,:,,::;;;;;;;;+;;;;;;;+++++++*****#*+++*****#############**########################################################################################
#**++++++:+;::;::+;;;;:;+++++;+++++++++++++***************##############*######################################################################################
*+;+;;+;+;;::::;;;:;++++++;;+;;;+++*+++++*++****************###################################################################################################
++;;++++++:,:;;;:::+++++;::::;::++***+++++++++####**********###################################################################################################
:;+++++++:.:;;:;::;;:;;:::::;+++:+**++++++++++++**********#####################################################################################################
++++*+++;;;;;;;;::::;:::::;;+++++++*+++++++++++++***##############**########*##*###############################################################################
+++++++++;::;;;:,:::;;;;++++++++++++++++++++++++*******#########################*##############################################################################
+++++++;,::;;;::,,:;;;;;++++****+++++++++++++++*+*###*##**#######################*#############################################################################
++;++*::,,,,,,,,,,;:;;;;++++++#++***++++++++*++*****#########*####################**###########################################################################
+;:::+::,,..::,:;;::;;;;++++++*++++*++++++****#++++***#####***#####################**##########################################################################
;;::;;:,::,,::;;+:;;;;;;++++++++++++++++*****++++++++++***######*#*###############**#*#########################################################################
:;:;;,,,,,,,,:::;;;;;;;+++++++++++++++++**+*+++;++++++++***+******###############*****#########################################################################
;:+;+;,,.,,::::;::;;;;++++++++++++++++++++++;;++++++++*+********##################***#*########################################################################
;:++;;:.,,,,:,,,::;;;+;++++++++++++++++++++*+*#***********#+**####################*****########################################################################
+;;++++:+.,,,,,,.,:::,:;++++++++++++***+++++*******+++++****######################****#########################################################################
;;;;;;;,+,,,,,,,,,.,;;:++++++++++++*++++********##**##****########################**#***#######################################################################
;:;+;;;:,+::,,,,::,:+************+++***#****####**********##########################***#*#############*#..:;+++################################################
++:;:;;;:+;:,,,.::;;************#*++*++#****++*#**************######################**##*##############..,:;++*+###############################################
++::;++*++++:,,,.::+*****************+**#***************************####################*############## :;++++++###############################################
+;++++*+***+;;::,:;+***********++*++*+****#*************************####################################:;++*+*################################################
++*+++******:;;;;;;;******+++***+***##*+++*+************************###########################################################################################
**+************+;;:;+++++++++***+***+*+**+;;+++*********************##############****#########################################################################
**+******++*****+*++++++++++********++*+++++*+++**********##**##****##############**#####*#####################################################################
+++**:+++*+.;***********++++++++++*********++++++++*****####**##########################*######################################################################
***++*+++****+++**********+**++++*****#**#**+*+***##**#*********########################*######################################################################
+++++*+++***+*#;++******#*****++*********++++++++++++++*******#################################################################################################
**+++++++;+++**++*+*+************++*+***++++++++++++++++**********#####################*#######################################################################
****++***+;+*+*+;;;++++*+***++++++****#+++++++++++++**+***********#####################*#######################################################################
*******+**++;+*********+*++++++++++*++++++++++++++++******************################*########################################################################
**++************+*++*+****++**********++++++++++++********************####**#########*#########################################################################
***+****+*****+***++********++*+****++++++**************++************##**#####################################################################################
**+*****+*+##*+********+****#**+++**++++++++++++++++++************######**#########*###########################################################################
****************+*********+++*******++++++++++++++++++********##################*#*############################################################################
****************************+*++**+++++++++++++++++*********#####################*#############################################################################
****************************+++++++++++++++++++++++***********##############*###*##############################################################################
#*+******+****+*****+***+***++++*******++++++++++++++*********################*################################################################################
+*********************++*+++++++++******++++++++++++********#################*#################################################################################
+;;+++******************++++++++**+********+++++++**********###################################################################################################
#**+::::++*******+*+++++++++++**+*************++++++********##****#######*#####################################################################################
###***+;+;+*******************##**######******+++++*******############**#######################################################################################
######**+++***********************************++********############**#########################################################################################
########***+*++*******+*++*****#******##*****+++******#########*###############################################################################################
############******#****+***+++++**##**######********##########*#*##############################################################################################
################**+******************************#########*####################################################################################################
$####*+++;;:;:::,::::;;;;;;;+;;;;;;++++;++++*****++++*****############**########################################################################################
#**++++++;++:::::;+;;;:;+++++;++++++*++++++*********+*****##############*######################################################################################
*+;++;++;;+;,;;:;:;:;+++++;+;+;;++++*+++++*+*****###********###################################################################################################
;++;++++++;::;;;::;;+++++;:::;;;:++*+*++++++++*#*#**********###################################################################################################
;:+++++++;,,:+:;;:;;;:;;:::::;;++;+*+++++++++++++*********#####################################################################################################
++++++++;;;;;+;;::::;:::::;;+++++++++++++++++++++*****##############*#######*##*###############################################################################
*++++++;+;;::;+;::::::;;++++++++++++++++++++++++**++****############*###########*##############################################################################
+*++++;+,:::;;;:,,::;;;;;++++***#++++++++++++++++*####****##*####################*#############################################################################
++;++++,:,,,,,,,,,,;:;;;+++++++*++**+++++;++*+********##############*#############**###########################################################################
++;:,;:;,,,,,:::,:;;;;;;+++++++*++++*+++++++**#*++++**######***####################**##########################################################################
;;:::;,:,,,,:,:+;;;;;;;;+++++++++++++++++*****++++++++++**######**################**#*#########################################################################
;;::;;,,,,,,::;:;;;;;;;;++++++++++++++++****+++++++++++++**********###############****#########################################################################
;;;;;+;,.,,:,:::::;;;;;+++++++++++++++++++++++;+++++++++**#*#***##################***#*########################################################################
;;:++;;,.,,,,:,,,,:;;;++++++++++++++++++*+++++******#*********####################*****########################################################################
+;;;+++:+:,,,,,,,,::::,:;++++++++++++***+++++*******++**+*#**#####################****#########################################################################
;::;+;+:.;,,:,,,,,,,,;;:+++++++++++***+++*********##******###########################***#######################################################################
+;;;+;;;:,+:;,,.,:,,;+************++***#****####************########################***#*##############*,.,:;+++###############################################
+++;;:;;+,+;::,,,:;;;**************++++*****++*##*************##########################*#############*..,::;++++##############################################
+++::;+;+*++*:,,.,;;*************#****+*****************************####################*##############;,;++++++###############################################
++:++++***+*++::,::;*************+*++++*******************************##################################+:+++*+################################################
+**++++*****+;;;;;;;+*****++++*********+++***+***********************##########################################################################################
****************+;;;+++++++++*********+***+;;;++*#********************############*****########################################################################
+*********++*****+*++++++++++********+*+*++++*+*+*********##**####****############**#####*#####################################################################
++****;+++**,+***********++++++++***++****+**+++*+********##############################*######################################################################
****++*++*****++**********#++*+++*****#*###*#+***#**************########################*######################################################################
++*+++**+****+**;+*******#*****+++*********+++++++++++**********###############################################################################################
****++;+++++*++*+#***************+++*****+++++++++++**+++*********#####################*#######################################################################
****+++*+*+;+*++*:;;++++*****+++*;+**#**++++++++++++++************#####################*#######################################################################
****+***++**+++*********+**+++++++++*++*++++++++++********************################*########################################################################
******************+*++******++*********+++++++++**+*********************#############*#########################################################################
***+++*****+********++*#*****++**+***+++++****************************####**###################################################################################
***+****+**+#*+***+*###*++*#****++***++++++++++++++++***************####**#####################################################################################
*****************+**+*******++******++++++++++++++++********####################*#*############################################################################
********************++*********+****++++++++++++++++********#####################*#############################################################################
************++************#***++++++++++++++++++++++**********##################*##############################################################################
*********+**++++******+*******+++*******++++++++++++++******##################*################################################################################
:+**********************+++++++++++*****++++++++++++********#################*#################################################################################
+;;+************************+++++***********++++++++********###################################################################################################
#*#+;::::+********++++++++++*******************+++++********####****#####*#####################################################################################
#####*+;+;++********************##**####*******++++*******#############*#######################################################################################
######**++++**********++**********************++********############**#########################################################################################
#########**++*++**********+*#***********##************#########*###############################################################################################
############************+***++*+******######**********########*#*##############################################################################################
################**+*******************************###*#*#**####################################################################################################
$**##*+++;;;::::,,,,::;:;;;+++;;;+;;+++++++******++++******###########**########################################################################################
#**++++++;:+::::::;;;+;;;;+++;;+++++++++++++****************############*######################################################################################
*+;;+;++;+;+,:;;;;:;;;++++++;++;+++++*++++**+****###*********#####**###########################################################################################
;++;;++++++;::;;;;:;;+++++;:::;;:;++**+++++++++*####****#****##################################################################################################
+:;+;+++++;,::;:;;:;;;:;;;::::;+++;+*+++++++++++**********##*##################################################################################################
+++++++++;;;;;++;:::;;;:;;:;;+++++++**+++++++++++***################*#######*##*###############################################################################
**+++*++++;;:;;;::,:::;;+;+++++++++++++++++++++++**++****#######################*##############################################################################
*++++*+;+,,:;;;;:,,,:;;;;;++++**#*++++++++++++++++**##**#########################*#############################################################################
+++;++++,:,,,,,,,,,,;:;;+++++++**++**+++++;+++++******############################**###########################################################################
*++;::;;:,,,,,,,,:;;::;;+++++++*++++++++++++****#++++***#####***###################**##########################################################################
+;;::,:::,,,,,,:+;;;;;;;;+++++++++++++++++*****++++++++++***######**##############**#*#########################################################################
+;;;;;:,,,,,,::;:;;;;;;;+++++++++++++++++****+*+++++++++++*#******################****#########################################################################
;;;;+;+:,,,,:,::::;;;;;;++++++++++++++++**++*+++++++++*******#**##################***#*########################################################################
+;::++;;,.,,,:::,,,:;;;+++++++++++++++++++++++*+******#********###################*****########################################################################
+++;;+++,+,,,,,,,,,,:;::::;++++++++++*****++******************####################****#########################################################################
+;;:++;;;,,,,:,,,,,:,,;::;++++++++++****+++*******##******###########################***#######################################################################
++::++++;,;::::,,,::,:+************++*******#####*******#*###########################*##*###############*,,:;+++###############################################
+++;:::::;:+:,:,,,:;:;************#*++;+*****+****************##########################*###############..,:;++*+##############################################
++++;:;;+*++++:,,,,,++*****************+***#************************####################*###############.,+++++*+##############################################
+++;++++*+***+;,::::;*************++++********************************###################################:++++++###############################################
***++++++*****+:;;;;;+******+++*****#***+++***+***********************#########################################################################################
****************++;;;;++++++++*********+****+;;++**#******************##############***########################################################################
************+*****+*++++++++++**********+**++++**++*************####**##################*######################################################################
**+*****+++**:;+*********+++++++++****+*******++++++******##############################*######################################################################
+***++****++****++**********++*+++****##***#**+*****+**#********########################*######################################################################
*++**+++*++****+**++************+++********+++*+++++++++***##*****#############################################################################################
*****++++++++*++*++***********#**+++++****++++++++++****+*********#####################*#######################################################################
*******+*+++;+**+++;;;++*+#***#+++*+*****+++++++++++**+***********#####################*#######################################################################
**+*********+++++***********++++++++++*+++++++++++++********************##############*########################################################################
+*********++*********++++****+++********++++++++++************************###########*#########################################################################
****++******+***+****+++*******+**+***++++******************************##***##################################################################################
*****+#**++*+*+++#****##**+*******+++*++++++++++++++++**************####****###################################################################################
********************#*********++****+*++++++++++++++**********##################*#*############################################################################
********************#*+*********++***++++++++++++++++*******#####################*#############################################################################
+*********#***++***************++++*++++++++++++++++++********##################*##############################################################################
+*********+*++**+***************+++******+++++++++++++******##################*################################################################################
:+*******+**********+*****++++++++++******++++++++++********#################*#################################################################################
++:;+***********************+++++++***********++++++********###################################################################################################
****+:::,:+*********++++++**********************+++++*******####****#####*#####################################################################################
####**#;+;;+++**#******************#**####******++++********###########+#######################################################################################
######*#*+++***+*******+**#*****************************############**#########################################################################################
#########**+++*+***********+************####**********#########*###############################################################################################
############************++***+++++**##**#####*********########*#*##############################################################################################
################*#**+*****************************###**##**####################################################################################################
$####*++++;:;:,::::,::;:;;;;;++;;;;;++++++++**#***+++******###########**########################################################################################
#**++++++;:++::::::;;;;;;;++++++++++++++++++****************############*######################################################################################
*++;+++++;;+;::;;;;:;;+++++++;++;;+++++++++*++*#######********####**###########################################################################################
;;+;+++++++;:::;;;;::;++++;;:::;;;;++*+++++++++*####****##****#################################################################################################
+;:;+;+++++:,::;;;;:;;+:;;;::::;;++;+*++++++++++**********##########*##########################################################################################
;++++**+++;:;;;;;::::;;;::;;;;;++++++*++++++++++++****######################*##*###############################################################################
**++++*++;+;::;;;:::::;;;;;+++++++++++++++++++++++*++*****######################*##############################################################################
++++++*+:;,::;;;;:,,,;;;;;++++****++++*++++++++++++*##******##########*##########*#############################################################################
*+++;+++::,,,,,,,,,,,::;;;++++++**+*#*++++++;+*++***#***##############*###########**###########################################################################
*+++;::;;:,,..,,,,::;;;;;+++++++*++++++++++++******+++****#####**##################**##########################################################################
+++;:::,::,,,,,:;;;;;;;;;++++++++++++++++++*****+++++++++*****####**#################*#########################################################################
++;;+:;,,,,,,,::;;;;;;;;;+++++++++++++++++******++++++++++*********###############****#########################################################################
+;;;;;;;,,,,,:,::;:;;;;;++++++++++++++++++**+++++;+++++*******#**#################***#*########################################################################
++;;;+;;:..,,,:::,,,;;;;++++++++++++++++**+*+++++***************###################****########################################################################
+++;+++++,+,,,,,:,,,,;;;:::;++++++++++*****+**********#*******#####################***#########################################################################
:+;;;++++;;.,,,,,,,,:::,;;:;+++++++++***++++****##**####**###########################***#######################################################################
+++::;+++;:;:,::,,,;;::+************++******#####*##****#*###########################*##*################..,:;+++##############################################
++++;:::::,;+:,:,,:,:;;**************+:+*********###**********##########################*############### .,:;;++*;#############################################
**++++;:++++*++:,,,,:;***********************+****##****************####################*###############..;+++++++#############################################
++*+:+++++****+:::::::*************+*++++*********##********************#################################;;+++*+*##############################################
****++++++*****+:;;;;;+*****++++****#+****++***+*********************###############**#########################################################################
++***************+++;;+++++++++**********+**+++;+++*********************############***########################################################################
+*+*****************+++++++++++*******#***+*++++***+**********########**################*######################################################################
***********;*#+:+**********++++++++***++********+++*********############################*######################################################################
******++*********+++***********;+++***####****#+**#***#*#*******########################*######################################################################
*+;****+***********;*+****#******++*******#**++++++++++++***##****#############################################################################################
****+*+++++++++*++*****************++++*****++++++++****************###################*#######################################################################
*****+***++*++;++*++;;+++++*+***++++;+****++++++++++****************###################*#######################################################################
**+**********+*+++************+++++++++**++++++++++++*********************############*########################################################################
*+*********+*****#***+*+++*****+++*******+++++++++**************************#########*#########################################################################
*********+******#******++*#*****++**++*+++++****************************##**###################################################################################
*****+****+++***++#****##***+*******++++++++++++++++++++**************############*############################################################################
**********+*******#**##**+****++++**++++++++++++++++**********##################*#*############################################################################
+******+********#*****#*+*********++**++++++++++++++**********###################*#############################################################################
++**********+********************++++++++++++*+++++++++*******##################*##############################################################################
++*********+*****+******++********++*****+++++++++++********##################*################################################################################
;;+*************************++++++++**+****+++++++++**********###############*#################################################################################
*+::+************************++++++++**********++++++*********#################################################################################################
****+;:::;++***********+++**********+************+++**********####**#####*#####################################################################################
###**#*+;;:;++;+****++**************########*****+++********###########+#######################################################################################
######*#*+*+++**+*******++********##********************############**#########################################################################################
########*#*++++*************+***********####************#######*###############################################################################################
############*******************++++***########********########*#*##############################################################################################
################*#*+++****************************###***#***###################################################################################################
$####*++++;;:;:::::::::;;;;;;;++;;;+;++++++++******++++****###########**########################################################################################
#**++++++;;;;,;::::;;;+;;;;++++;+++++++++++++***************############*######################################################################################
*++;;;;++;+;+::;;;;;:;;;++++++++++++++*+++++*++#########******#################################################################################################
:;+++;++++++::::;;;;::++++++;:::;;;;++**++++++++*###******#***#################################################################################################
*+;;+;++++++,,:::;;::;;+:+;;::::;+++;*++++++++++++**********###################################################################################################
+;++++*++++:::;;+;::::;;;:;;:;;;++++++*+++++++++++**+*######################*##################################################################################
+**+++++++++;:;;;;::,:::;;+;++++++++++++++++++*+++**++**##**##########*#########*##############################################################################
**+++++*+;:,::;;;;:::,;;;;;;+++****+++++++++++++++++**##****#####################*#############################################################################
+*++;;+++::,,,,,:,,,,,::;;;++++++*++***++++++++**+*#**##*#########################**###########################################################################
+**++;:::;:,,,.,,,:::::;;;+++++++*+++++++++++*****#*+++****#####**#################**##########################################################################
*++++::,,:,,:,,::;++;;;;;;+++++++++++++++++*******+++++++++****#####**############**#*#########################################################################
+++;;;;;,,,,,,,:;;;;;;;;;;+++++++++++++++++*****++++++++++++********##############****#########################################################################
++;;;;+;:,,,,,,::;;:;;;;;;++++++++++++++++**++++++++++++*******#**#################**#*########################################################################
+++;;;++;,...,::::,,,:;;++++++++++++++++++*++++++*************#**###################*##*#######################################################################
++++;;++++:;,,,,,,,,,::;;;::;++++++++++*****++********#*****#*######################**#*#######################################################################
;;;:+;+++;.;,,,,,,,,:::,,;+;;+++++++++****++++********###############################***#######################################################################
++*+;::;+;;,;,,,:,,,:;;,++***********++#****########****#*############################*#*###############*;.,:;++++#############################################
+++++;;:::;.++:,:,,:,;;;**************+;*********###********############################*###############* .,:;++++#############################################
****+++::;++;*++:,,,,,:**********************+++**##****************####################*###############*.,;++++*+#############################################
****+:+;+++*+**+::::::;************+++++**#*****#*##********************#################################*:+++**+##############################################
*****+;++*+*****;::;;;;+******+++***********+***++********************################**##################*####################################################
*********+********++;;;+;+++++++**********+***++;;+++****************#**############**#########################################################################
**++*****************+++++++++++**************+*++**++************######################*######################################################################
************++**:+**********++++++++****++**********+*********##########################*######################################################################
+*+***+++*+++******++************+++****####**#*+###*****#********######################*######################################################################
**+++***++**++*******++***********++*********+++*+++++++++***###**#############################################################################################
******+++++++++*+*+*****************+++*****++++++++++**************###################*#######################################################################
******+**+++**++++*++++++*+*******++++++##*++++++++++***************###################*#######################################################################
*****+*********+*++++**********+++++++++***+++++++++++********************############*########################################################################
**+*********+*******#****+*******+++****+*++++++++**************************#########*#########################################################################
************************++********++*+**++++++****************************#####################################################################################
***********+++*+*+*******##*#+*******+++++++++++++++++**********####**######*#####*############################################################################
***********************#***+**#*++*****+++++**++++++**********####################*############################################################################
************************++**#*****+*+**+++++++++++++**********###################*#############################################################################
*++********************************+++**++++++**++++++********##################**#############################################################################
+*+***************++******+****************+++++++++*********#################*################################################################################
+:+****************************+++++++******++++++++************#############*#################################################################################
+*;:+*************************++++++++**+*******++++************###############################################################################################
#*#*+;;;::+++***********++************************++**********####**#####*#####################################################################################
###*+**+:;;;;++;*****+******************####******************#########+#######################################################################################
######*##**++++**********+******************************############**#########################################################################################
#########*#++++**************+************####**********#######*###############################################################################################
############***************++***+**+**#########*********######*#*##############################################################################################
################*#*++***********************************#***###################################################################################################
$**##*++++;;,+:,:::::::;;:;;;;+++;;+++++++++++*#***++++******#########**########################################################################################
**+++;+++++;+:,;::::;;;+;;;;++++++++++++++++******************#########**######################################################################################
*++;;+++++;++;::;;;;;;;;++++++++++;+++++++++**++########*******################################################################################################
:;+++;+++++++::::;;;;:;++++++;;;:;;;;++*++++++++**####****##***################################################################################################
++;::+;+++++;,,::;;;;:+++:+;;:::;;;++;*+++++++++++**********###################################################################################################
;;;+++*+++++:,:;;+;;;:;;;;;;;;;;;++++++*+++++++++++***################*#####*##################################################################################
+*+++++*+++;+;:;;;::;:::;;;;;+++++++++++++++++**++++********####################*##############################################################################
**++*+++++;:,:;;;;;::::;;;;;++++****++++++*++++++++++*##****#####################*#############################################################################
**+++;++*;:,,.,,,::,,,,::;;;++++++#++#**++++++++****#*##**########################**###########################################################################
+++*++;:,:::,,:,,,,,::::;;++++++++*+++++++++*+*****#*+++****#######################**##########################################################################
+**++;:;,.::::,,::;;;;;;;;;+++++++++++++++++*******+++++++++***#####**###############*#########################################################################
++++;;;;:,,,,,,:::;;:;;;;;;++++++++++++++++*******++++++++++**#*****###############***#########################################################################
++++;;:;;:,,,,:,::;;::;;;;+++++++++++++++++***+++++++++++*****###*##################*#*########################################################################
++++;;;+++,..,,::::::::;;++++++++++++++++++*+*++++**************#*##################***########################################################################
;++++;;+++,:,,,,,,,:,,::;;;;::;+++++++++******+++*****###*****######################**#########################################################################
+;+;;;++++;,;,::,,,,,::::::++:+++++++++*****++********###############################***#######################################################################
+++*+;:;;+;;:;,:,::,,:;;:;+***********++********####******############################*#*#################.,,:;+++#############################################
++++++;;:;:: ;;:,,,,:::;+*************+;+***#*****##********############################*################ .,::;++*;############################################
+****+++;:;++;++:;,,,,::*********************+++**##****************####################*###############*.,:;++++*;############################################
*****+;:;++++***+;;::;:;+************+*++***+***********************######################################:;++***+#############################################
****+*+;++**+***+;;:;;;;+#****++++**********++****++********************##############**#######################################################################
+*********+********+;;;;++**+++++***********+*++++++++**************##***######################################################################################
****+******************++++++++++**************+*++***++**********######################*######################################################################
**************+**;+*********+++++++++*****++*********+*+#*****##########################*######################################################################
:*****++++**++*******+**#********+;++*****##**#*#+************##**######################*######################################################################
**++***+*++***+*****+*+*******#****++***###*#*++++++++++++*****################################################################################################
*******+++++++;**********************++++*******++++++************#####################*#######################################################################
***********+++*+++++*+++;++*+*+*****+++++*#*++++++++++****************#################*#######################################################################
******+************+++***********+++++++++**++++++++++***********************#########*########################################################################
***+***********************+******++*******+++++++**************************##*######*#########################################################################
**********+**************+++*********+*+*+++++****************************#####################################################################################
********#***+++++*+*#*****###*++*******+++++*+++++++++++********######**#######################################################################################
******************+*#*+#*#**+*****++****++++++**++++++**********##################*############################################################################
************************#***************++++++++++************###################*#############################################################################
+***********************************++++**++++++**++++********##################*##############################################################################
,+************************************+*****++++++++**********################*################################################################################
+:;+**********##*****************++++++++****+++++++************#############*#################################################################################
+*+::+******##****#*************+++++++*********++++++**********####**##*######################################################################################
#***+;;;+;++++************++************************************#########*#####################################################################################
##***+#++:;;:+++++**#**+**************####**********************#######+#######################################################################################
######**#**++;++**********++**#***************************##########**#########################################################################################
#########*#*++++**************++**********######********#######*#####*#########################################################################################
############**********##****++***+**+**#########*********#####*#*##############################################################################################
################***+++**********************************#***###################################################################################################
$**###+;+++;::,,:::::,::;:;;;;+++;;;+;++++++++*****+++***#############**########################################################################################
***+++++++++::,;::;::;++;;;;++++++++++++++++++****************#########**######################################################################################
*+++;++;++;+;+::;;;;::;;++++++++++++++++++++**++**######*******#####**#########################################################################################
,++++;;;+++++;;:;;;;;;;;++++++;:;:++;;++*++++++++*######**##***################################################################################################
+++;:;+++++++:,:,;;;;:;;++;;;;::;;;+++;*++++++++++****##****##########*########################################################################################
+;:+++++++*+:::;;;+;:;:;;;;;;;:;;+++++++++++++**++******#######################################################################################################
++**++***+++;;::;;;::;::;;;;+;++++++++++++++++**++++*+****##**##################*##############################################################################
++**+*++**+;;,;;;;;;::::;;;;;++++***++++++*+++++++++++**#########################*#############################################################################
***+++;+++;:,,,:,,:,:,,,,:;;+++++++*+*#***+++++++**+****##########################**###########################################################################
++++*++;:,;:,,,,:,,,,:::;;;++++++++*+++**+++**+*****#*++*****#####################***##########################################################################
++*+++;;:.:::::::::;;;;;;;;;+++++++++++++++++*******++++++++****#####################*#########################################################################
+++++;;;;,:,,,,,::::;;;;;;;+++++++++++++++++********+++++++++*******###############***#########################################################################
++++;;;;;;,,,,,:,::;;:;;;;;+++++++++++++++++****++++++++*******###*#################*#*########################################################################
+++++;;+++;,.,,:::::::::;+++++++++++++++++++**+*+++*************#**#################***########################################################################
++++++;;++*,;,,,,,::::,::;;;;::;+++++++++******+********##****######################**#########################################################################
++;;:;++++++:,:::,:::::::::,+;;+++++++++*****+++******###############################***#####################*#################################################
++++++;:;;+;,;;,::,,,::;;;++***********++#******####**##**############################*#*###############*#..,:;++++############################################
+++++++;::;:,,+:::,,,:;:;+**********#**++*********######**##############################*###############*...::;+++++###########################################
*+****+++;:;+++++;;:,::,:+*******************+++*#******************####################*################:.,;++++*+*###########################################
******++;;;+++***+;:::;:;+***********+++++**#***********************######################################::++++***############################################
+******+;+++*+***++;:;;;++*****++++****************++*******************##############**#######################################################################
*+********++*******++;;;;+++++++++****#***#******+++++*+*************##########################################################################################
*+**++*****************++++++++++****************+*+***++*********######################*######################################################################
****************+*+;*********++++++++*******+***#*****+****#**##########################*######################################################################
.+****#*+++**++*****#*+#**********++++****#####***+**#********##########################*######################################################################
**++++*#**++***+****************#***++**********++*++++++++****################################################################################################
********++++;++++***+*****************++++******++++++************####**###############*#######################################################################
************+++*+++++*++++++*+*******+++*+***+++++++++**+*********##**####**###########*#######################################################################
***********+*****+**+++***********++*++++++**+++++++**************##*********#########*########################################################################
*+*+***********+*************+******++******+++++******************************######*#########################################################################
**********++********#*****+++*********+*+++++++***************************##***################################################################################
**************+++*****#*****#***++*******++++*+++++++++*********###############################################################################################
************************#***********++***+++++**++++++****#*****################*#*############################################################################
**************************#**************+++++**++++**********###################*#############################################################################
+**+**********************************++***++++++***++********##################*##############################################################################
,++******************************************+++++************################*################################################################################
*;;+***++*************************++++++++****+++++++***********#############*#################################################################################
+**;:;****************************++++++******#***+++++***********####***######################################################################################
#*+**+;;++;+*+************++************************************#########*#####################################################################################
###*****+;:;:;++++**********##************##**##****************#######+#######################################################################################
######******++;+************+*********##******************##########**#########################################################################################
#########*#*++++***************+**#********#####**********#####*#####*#########################################################################################
############****+*****###*****+***+**+**########******########*#*##############################################################################################
################*#*+++****************************##****#***###################################################################################################
$####**;+++;;,:::::::::;:;;;;;;+++;:+++++++++++*****+++***#**#########**########################################################################################
#**+++++++++;;,:+:::;:;+;;;;;+++++++++++++++++****************#########**######################################################################################
*+;;::;++++;+;;;:;;;;;:+;++++++++++++++++++++**+**##########****####**#########################################################################################
,;;;++;;++++++:;::;;;;:;;++++++;;;;+;;;++*++++++++**####**##****###############################################################################################
+++;;:+++++++;,,::;;;;:;+++:+;;;::;;;++;+++++++++++***##****###################################################################################################
*;;;+++++++*+;:,;;;+;;;:;;;;;;;;;;++++++++++++++++******#######################################################################################################
++*+****+*+++;;:;;;;::::;;:;;+;+++++++++++++++***++++++***##############*#######*##############################################################################
*****+*++*+;::::;;;;;::::;;;;+++++****+++++++++++++++++*#########################*#############################################################################
++++*++;+++;,,,,::::::,,,:::;++++++**+***+++++++++*+**#**#**######################**###########################################################################
++++*+++;:,;:,,,,:,,,::::;;;+++++++*+++++*+++++********+++**#######################**##########################################################################
++***+++::,,:,::::::;;;;;;;;++++++++++++++++*+*******++++++++***######**#############*#########################################################################
++*+++;;;;,:,,,,,,,:;+;;;;;;+++++++++++++++++*******++++++++++**#***################**#########################################################################
++++++;;;;:.,,,:,,::;;:;;;;++++++++++++++++++******++++++*******####################*#*########################################################################
++++++;;+++;,.,,:::::::::;+++++++++++++++++++**+*+++*************###################***########################################################################
+++++++;;+++:;,,,,,:::::::;;+;;:;++++++++*******+*******############################**#*#######################################################################
+++:;;;+++++;;,:::,:::::::::,;++;++++++++*****+++*###################################***#####################*++###############################################
+*+++++;:;:;:,+:::,:::::;;;;;+**********+*******######################################*#*#################* ,,:;+++############################################
++++++++;:;;;,,;::;,:::::;*************+++#*******######################################*################# .,::;++++###########################################
+*++****++;::;++++;:::,:::+*************+***+*++********************#####################*################.,:;++++++###########################################
+*+*****+;:;+;++**+;:;:;;;++***********+++++***+****#***************######################################*,;+++**+############################################
++******+++++*+***+;;;;;;++*****++++**********+******+****************################**#####################**################################################
**+**********+******++;;;;++++*++++*******#*****++*++++++*************####**###################################################################################
******++****************+++++++++++*********#******++****+****##**######################*######################################################################
+**********#********;+****+***+++++++++*************###*+****###########################*######################################################################
:+++****+++;**++*+****#*+***********+;+*****####*#*+**##********########################*######################################################################
+**++*+*****+***+;*****************#*++*******#**++**+++++++****###############################################################################################
********+++++++++++****+*#************#*+++*******++++************####**###############*#######################################################################
+*++*********++++*++++**+++++**+*********+++**++*+++++************##**####**###########*#######################################################################
*******************+**++++**********+++++++++*++++++++************##**********########*########################################################################
+***+*******+***+******#*************+++*****++++***+*************************#######*#########################################################################
**************+**************++***********+++++++*****************************#################################################################################
**********#*+*+*++++*+********#***********++++++++**++************#############################################################################################
**************#***###***#+*****+******+***+++++*****++************##############*#*############################################################################
**************#**************+**#*******++++++++++++**********###################*#############################################################################
:+**+**********************************+++**++++++**************################*##############################################################################
::++++**********#*****************************++++************################*################################################################################
++::++**++*********#****************++++++*****+++++++************###########*#################################################################################
++*+::+****************************+++++**************************####***######################################################################################
#***++:;;+++**+************************************#**************#######*#####################################################################################
##*#+*+*+;::;:;+++*******+************######**###***************#######+#######################################################################################
######******+*;+++**********+***##**######**####************########**#########################################################################################
########*##**+++++***************+**********#####*********#####*#####*#########################################################################################
############**#**+**+***##*****+***+*****#######******########*#*##############################################################################################
################*#*+*+****************************##****#***###################################################################################################
$####**;+;+;;::::::::::::;;;;;;;++++;;+++++++++**#***++******#########**########################################################################################
##*++++++++++:::;;::;:;;;;;;;;++++++++++++*+++**+###**********#########**######################################################################################
*++;;:++;+++;++:;;;;;;;;;;++++++++++++++++++++*+**##########****###############################################################################################
:;;+;++;;+++++:;;::;;;;;;;++++++;;;;+;;;++++++++++**####**#####################################################################################################
:+++;;,+++++++:::::;;;;;;+;+;++;;;;;+++++++++++++++*****##**###################################################################################################
++;:++++++;+++:::;;;;;;;;;;;;;;;;;;;++++++++++++**+++*****##############*######################################################################################
+++*+***+**++;;;:;;;::;;:;;;;;;;++++++++++++++++***+++******##**################*##############################################################################
+****+*+++*+;:::;;;;;;;:::;;+++++++***++++++++++++++*++**########################*#############################################################################
+***+*++++*;;,:,::::::::,,,:;;++++++**+*#*******+++***###**#######################**###########################################################################
+**++*++;;,:::,,::::,:::::;;;+++++++*++++**+++++******#*+++*****###################**##########################################################################
+++***+++;,,,,::::::;;;;;;;;;+++++++++++++++++*********++++++++***####**#############*#########################################################################
++++++;;;;:,,,,,,,,::;;;;;;;+++++++++++++++++*********+++++++++***##*################*#########################################################################
++++++;;;:;:..,,::::;;;;;;;;++++++++++++++++++****+*+++++++*****####################*#*########################################################################
+++++++;;;++,,,,,:::::::::;+++++++++++++++++**+*+*+++*****##******##################****#######################################################################
++++++++;;++;::.::,,:::::::;+++;;:++++++++****#*#*+*******###########################*#*#######################################################################
++++:;;;++++;:+,::::::::::::;::+++++++++++******++**##################################**######################++###############################################
++++++++;::;;:,+:,::::::::;+;++**+*******++*#*****######################################*################## ,,:;++++###########################################
**+++++++;:;;;.:;::::,,:;:;+**********#*+++*******######################################*################# .,,:;;+++;##########################################
***+****++++::;;+++;::::::,;*****************++++*****##**********########**#############*###############* .,:;++++*;##########################################
*+*******+;;:+;;+*++;:;:;+;++***********++++**********#*************######################################*,:;++***+###########################################
*+*******+;+*+**+*#+;;;;;;++*****++++#********++******++**************################**#####################*+**##############################################
***+*********+++*****+++;;;++*++++++*****************+++++************#########################################################################################
+******+*****************+++++++++++****************+++***++**##**######################*######################################################################
*+********************+********+++++++++****#*******##******####**######################*######################################################################
+;++******++;+*+;++*****************++++******#####+********+***########################*######################################################################
****++*+*****+***+++****+*+**********#+***********+**+++**+++*****#############################################################################################
*********+++*++++*;+********************++++********++++**********######**#############*#######################################################################
+**************+++*+++++**+++++*+*******+*+*+**++++++++***********####**##*****########*#######################################################################
*********************+**+++***********+++++++++++++++++***********##***********#######*########################################################################
+**+#*****************+***#************++*****++++******************************#####*#########################################################################
*******+****+*****************++**#*********++++******************##********###################################################################################
************+++****************************+++++******************#############################################################################################
******************#*###***+***********++++*+++++**************###########*######*#*############################################################################
*************#****************+***********++++++**************###################*#############################################################################
,+***+******#***************##***********+++*++++++***************##############*##############################################################################
;,;+*++***********#***************************++++**************##############*################################################################################
+*;:;+****++***************+**********+++++*****++++++**************#########*#################################################################################
+++*;:;+****************************++++++**************************##***######################################################################################
**+*+++;:+********************************************************#######*#####################################################################################
####+*+**+;::::;+++*************##**********######**************#######+#######################################################################################
######+*##***++;++************+*******######**####**********########**#########################################################################################
#########*#***++*+****************+*****####**####********#####*#####*#########################################################################################
############**+#*++*****####****++**+*****#######*******######*#*##############################################################################################
################**#*+++***************************##****#***###################################################################################################
$####**+++;;+:;,::::::::::;;;;;;++++;+++++++++++*****+++*****#########**########################################################################################
##*+;+;++++;+;;,;;::;::;+;+;;;++++++++++++++*++***##**##******##########*######################################################################################
*+;;+::++;++;;;;;;:;;;;;;;;+++++++++++++++++++**+***############*##############################################################################################
::;;:+;;;;++;++:;;::;;;;;;;++++++;;;;++;;++++++++++**##########################################################################################################
:+++++;:++++*++:::::;;;;;;+++;++;;;;;+++#+++++++++++****#######################################################################################################
+*+;;++++++++*+:::;;;;;;;;;;++;;;;;;;++++*++++++**********##############*######*###############################################################################
++++*+******++;;;;+;;;::;;;;;;++++++*++++++++++++***++++****####################*##############################################################################
+*****+*+++*+:;::;;;;;;;::::;+++++++****+++++**+++++++*++*#######################*#############################################################################
#+***+*+++++;;,,,,::;:::,,,:::;;+++++*++*********+++****#*****#####################*###########################################################################
+++**+*+++;::::,,,:::::::::;;;+++++++*+++***++++**********++****##################***##########################################################################
++*+***+++;,,,:::::::;;;;;;;;;+++++++++++++++++*********+++++++***###################*#########################################################################
+*++*+++;;;:,,,,,,,,::;;;;;;++++++++++++++++++**********++++++****###################*#########################################################################
+++*++++;;+;,,,,::::::;;;;;;;++++++++++++++++++******+++++******####################*#*########################################################################
++++++++;;;++,,,,,::::::;;:;+++++++++++++++++**+****++****####*****#################****#######################################################################
+++++++++;:++:+:,,::,:::::::;++++;;;+++++++****#**********####**#####################*#*#######################################################################
+++++;;+++++++,+,:;:::::::::;;::+;+++++++++#**********################################**######################;;+*#############################################
+++*++++;+:;;;:,;::::::::;:;+++++*******#*+*##****######################################*##################:.,,:;++++*#########################################
***+++++*++;;;+,:::::::::;::+**************+******######################################*#################+ .,::;++*+*#########################################
****++*****++;;::+++;:;:::;;;+**********+*****+++*****************#######################*################+.,:;+++**+*#########################################
**+*+*****++::;+;;**;;;;;:;+++**********+++++*****+*****************#######################################+:;+++***+##########################################
**+*******++++++*+**+;;;;;;+******++++******#***+*******++************#################*######################++**#############################################
+***+*****+++**+++****+++;;;++**+++++******************+++++************######*################################################################################
*+*****+******************+++++++++++*****##************+***+*+***######################*######################################################################
+*+********************+*****+**+++++++*******#*****#*********##########################*######################################################################
*++++******++++**;;*****+*#+********#*++++*******###+***###*******######################*######################################################################
+**;+++*+******+***++*****+*+*********#+********#***+*+++++++*****#############################################################################################
**********++**++++*++**********************++*+*****+++++*********#####################*#######################################################################
+;***+**********++++*+++++#+++++**+*********+++*++*+++++**********####**********#######*#######################################################################
**#*******************++**+++**********+++++++++++++++************##************######*########################################################################
#***+**+*****************+***************+*****+++******************************#####*#########################################################################
********++**********************++********+**+++******************##********###################################################################################
************#*++******+*+*#***#*##***+******++++******************#############################################################################################
+#****************************#****#**#*+++*+++++**************#############*###*#*############################################################################
++****************+***********#*************++++++**+***********#################*#############################################################################
,,*+**+***************************#********++*++++++****************############*##############################################################################
+:,+++++****************************************++******************##########*################################################################################
+*+::+******+*******+*************++****++++++***+++++********##****#########*#################################################################################
++**+;:+******************************++****************************####*######################################################################################
**+***+;;:++******************************************************#######*#####################################################################################
##+*++***++;,::;:;++**####****************##########************#######+#######################################################################################
######++#*****++;+;+***************#**#############***********######**#########################################################################################
#########*#****+*++*************#*#+******#########*********###*#####*#########################################################################################
############****++*+**+***##*****+*********#######******##*###*#*##############################################################################################
################**#***************************######****#***###################################################################################################
$####+*++;+;;;;:;:::::::::;;;;;;;+++++;++++++++++*****+******#########**########################################################################################
##*+;+;+++++;+;,:;;;:;;:;+;+:;;+++++++++++++++++****######****##########*######################################################################################
#++;+;;++;+++;;+:;;;;;;;;;;;++++++**++++++++++***+#*############**#############################################################################################
:,;+;;++;;+++;++;;:;:;;;;;;;++++++;;+;++;;++++++++++**#########################################################################################################
:;++;;;;;++++++:;::::;;;;;;++++++;;;;;;++*+++++++++++***################*######################################################################################
++*+:;++*+++++++,:::;;;;;;;;;++;;;;;;;++++*+++++++********#####################################################################################################
*+;+*+******+++;;:;+;;:::;;;;;;;+++++*++++++++++++***+++****####################*##############################################################################
;+*******++**+;:::;;;;;;;:::;;++++++++#*++++++***+++*+*++**######################*#############################################################################
**+***#+*++++;:,:,:::;::::,,::;;++++++#++#***********+***##***#####################*###########################################################################
**++**+*+++;::::,,,:::::::::;;;+++++++#++++*++++++**********+***##################***##########################################################################
**+*+***++;;,,,,,:,:::;;;;;;;;++++++++++++++++***********+++++++***#####**###########*#########################################################################
++++**+++;;;:,,,,,,,::::;;;;;;++++++++++++++++**##*******++++++****##################*#########################################################################
++++*++++;+;:,,,,:;,::;;;;;;+++++++++++++++++++*#*****+++++****#######################**#######################################################################
+++++++++;;;++,,,,,::::::;;;;+++++++++++++++++****#+**++**#####*****#################**########################################################################
+++++*++++;;:+:+,,,::::::::::;;++++;;+++++++********+*******###################################################################################################
++++++;;+++++++:;::;::::::::;;;;::++;+++++++**##**+*+***##############################**######################;:++#############################################
***++++++++:;;+,:;::::::::;:;+++++******##*++###**######################################*#################*# .::;;+++##########################################
***+*+++++++:;;+,;:,::::::;;:+********#***#++*****######################################*##################..,,:;+++++#########################################
*****+******++:;;:++;;:::::;;;+*********+*****++++********##**##**##########**###########*################*,,,;;++++++#########################################
*+*+********++;:;;++++;;;;;;++++******###*+++++*+*****************#######################*#################*,:;+++**+##########################################
***+********+;++++++*+++;;;;+******++++#********+********+**************####################################*#+++**############################################
*****+*******+**++++***+++;;;++**+++++********#**********+*+************#######################################################################################
*****+**++*****************+++++++++++****##********#**++****++***######################*######################################################################
++++********************+********+++++++++****##******####********######################*######################################################################
.+*;+*******++*+**++++****+*##*********++++#****#####*****##******######################*######################################################################
,;*+;;:+**+*****+***+++****#****+*******++#*****##*******++*******#############################################################################################
;+*********+++**++*+*+******+##***********++*+********************#####################*#######################################################################
+++*#***********+++++*+++++**+;+++*************+*+++++++**********######**##*****######*#######################################################################
******************+*****+***+++**********+**++**+++++++***********##************######*########################################################################
****++********************++**************++**#**+++************####*************####*#########################################################################
*****#****+************************+##****#***++++**************######********#################################################################################
**************++**********************++##**#+++++******************###########################################################################################
********************##**##**#***********#*++*+++****************################*#*############################################################################
;+****************#***********###************+++++****+*********#################*#############################################################################
:,;******#****#*********#*********##****#***++++++++****************############*##############################################################################
++:,++*++***********#***************************+++*****************##########*################################################################################
***;::+**********************************++++*****++++********##******#######*#################################################################################
+;***+:;+***********************************************************####*######################################################################################
#*+++*++:;;+********************************************************#####*#####################################################################################
###*;+**+++;:;;:;:;++*####****************###########***********#######+#######################################################################################
######*+******+++;;++***********+*#***##############**********######**#########################################################################################
#########*#*****++++*****************+##**##########********###*#####*#########################################################################################
############****#+*+******####****+*#********#######****##*###*#*##############################################################################################
################**#***************************######****#***###################################################################################################
$####+*+++++;;::::;::::::::;;;;;+++++++++++++++++**#**+******#########**########################################################################################
##*+++++++++;+;;:;;;::;:+;;+;;;++++++++++++++*+++#**########**##########*######################################################################################
*++;;+;;++++++;;:;;;+;;;:;+;;+++++++*++++++++++******###########**######*######################################################################################
,,+++;+++;;+++++:;;:;;;;;;;;+++++++;+;+++;;+++++++++**#########################################################################################################
::;+++;;:+++++++:;:::;;;;;;;+++;+++;;;;;++#+++++++**+*****#####################################################################################################
++*++:;+++*+++*+:,::;;;;;;+;++++;;;;;;+++++*++++++**********###################################################################################################
++++++++*****+++;:;;;;;;::;;;;;;++++++++++++*+++++****+++***##############*#####*##############################################################################
;;**#*****++*++;:::;;;;;;;:::;;+++++*++*++++*++**++++++*++**#####################*#############################################################################
******++++++++;:,,::::::::::::::;++++++*+*#***************##**#####################*###########################################################################
+***+*++++++::::::,::::::::::;;;++++++**+++**+++*+**********++****################***##########################################################################
***+*+***+++,,,,::::::::;:;;;;;+++++++++++++++************++++++****##****###########*#########################################################################
++*+++*+++;;,,,,::::,,::;;;;;;+++++++++++++++++**###******++********################**#########################################################################
+++++*++++;;::,,,,:::::;;;;;;;++++++++++++++++**********++*+****######################**#######################################################################
++++++*++++;;+:,,,,::::::;;;;;++++++++++++++++*****#+**++***####*****################**########################################################################
+++++++++++;;;+,+,,,:::::::::::;++++;;++++++*****###********###################################################################################################
++++++;;;+++++;:;:::;:::::::;;;;;::+++++++++************##############################**######################+,++**###########################################
++++++++++++:;;;,;:;::::::;::;+*++++********++##****####################################*##################* .,::;+++;#########################################
++**+*+++++*+:++;,;::::::::;+;+***********##*+******####################################*##################. .,:;;++++;########################################
+*****++*****++;;;:++;;::::::+;;+********+******++********######**#######################*#################..,:;++++*++########################################
**+*+**+*****++;:;;++*;;;;;;;++++*********+*++++++**#+##**********#######################*##################:::+++***+#########################################
**+*+*******+++++*++**++;;;;;+******++++*#****************++************######################################++++**###########################################
******+*******++**++****++++;+++**+++++**###*****+#**+****+++***********#######################################################################################
+*****+*********************++++++++++********##****##********++**##**##################*######################################################################
++**+*******************++******+*+++++++*+***###*******####******######################*######################################################################
,,+++**+*****++*+***++******++********#*++++**##***##*++**##********####################*######################################################################
.:+*++:.;+*******+***+++****************#+********#*******++******#############################################################################################
+:++*******+++***+*+***+******************************************#####################*#######################################################################
++*+***************+++**+++++#*+++*+*+***********++++++++*********######*********######*#######################################################################
********************+#***++**+++**********++*****+++++++**********####***********#####*########################################################################
******+*****+***************+*************#*++***+++************######***********####*#########################################################################
****+**+***+**********#************++******#***++++***********######**##******#################################################################################
****************++*******+**#*********#***##**+++++*******************#########################################################################################
+*********************#*####************##**++++++**************################*#*############################################################################
:++*****#*******************#*********##******++++****************######**#######*#############################################################################
+::+*************+****************##**********++++++******************##########*##############################################################################
+*;::+**++************#*********##***************+++**********##******########*################################################################################
+***;,++******************+***************+++++***+++++*******##******####**#*#################################################################################
*++**+;:++****#**************************+****************************##*######################################################################################
#*++***+;:;+**********#***************************###***************#####*#####################################################################################
####+++*#*+++:+;;;;;****####**************############**********#######+#######################################################################################
######*+#+*****+++++++***************###**##########**********######**#########################################################################################
########*********+*+++******##*********##***########********###*#####*#########################################################################################
############****#****+**+***##****#++*******########******####*#*##############################################################################################
################**************************##########****#***###################################################################################################
$####*++++++;;;;,:;::;::::::;;;;;++++++;+++++++++***##*++****#########**########################################################################################
##*+;++;+++++++;,:;;;:;;;;;;;;;;+++++++++++++**++*****##################*######################################################################################
*++;;+;;+++++++;+:;;:+;;;;;+;;+++++++*++++++++++**+***############*############################################################################################
,,;++;;+;+;;++;+;:;+:;;+;;;;;++++++++++;++++++++++++***########################################################################################################
,:;;+++;;:++++*+;;;::::;;;;;;+++++++;;;;++**+++++++*******#####################################################################################################
,+++;;;;+++++++++:::::;;;;;+;;+++;;;;;+++++**+++++**********###################*###############################################################################
+++;++++******+++;;;;+;;::;;;;;;;++++++++++++*++++++**#+++****##################*##############################################################################
++;***********++;::;;;;;;;;;::;;++++++*+**++++*+***+++*******####################*#############################################################################
++*****+**++++;;,,::,::::::::::::;+++++*++*#*******+*******##**################################################################################################
****++*++*+++::::::,::::::::;:;;+++++++*++++**++**+*####************###############**##########################################################################
*+**+*+***++;,,,,,::::::;;;;;;;;++++++++++++++**+*****##****++++*****#####*##########*#########################################################################
+++++++*++++;,,,,:::,,:::;;;;;++++++++++++++++++**##********++******#################*#########################################################################
+++++***+++;;:,,,,,::::::;;;;;++++++++++++++++++**#*****++******######################*########################################################################
++++++++++++:;+:,,,,::::::;;;;;;++++++++++++++*****+****++**######**##################**#######################################################################
*++++++*++++;;:;:+,,,:::::::;;::;++++;;;+++++**#***#**********#########################*#######################################################################
++++++++;;++++++,+,:::::::::;;;;;;;:;++;+++++*****##******#############################*#######################.;++*###########################################
****++++++;++:;+:,;;::::::;;;;;++*+++****###*+*#****####################################*#################*#, ,:::;++++########################################
*******+++*+++;;;;:;,::::::::;++*+*********#**+*****####################################*###################..,::;+++*+########################################
++*****+******+++;+:;+;;;:::;;++;+*******+******++************###########################*#################*.,::;+++**+########################################
*****+**+*****+++;;;;+++;;:;+;+*+++*****###***++++****+***********##########################################:,:;+++**++########################################
***************;++**+*++++;;;;+******++++###******+*********++**********######################################++++**###########################################
*****+*+*********+**++**+++++;+++***++++**##****#**********++***********#######################################################################################
********+************#****#**+++++++++********####*******#******+*******################*######################################################################
;+++++********************+*+******+++++++++**#####*******####******####################*######################################################################
,,:;++++#*****++**+**;;++*****+**#*******+*+*+**######*******#****######################*######################################################################
,,:++*+,.,********++***+++******+**+*****#++****#*#***+*****+*****#############################################################################################
++:;*********++*#***+***+**************#**********+***************#####################*#######################################################################
**+*+***************++++*+++++**+++++**+********+*++++++++********######**********#####*#######################################################################
****************+*****#***+++**+++***#******++**++++++++**********######**********####*########################################################################
*****+*+*********************+****************+***+++***********######**********#####*#########################################################################
********+*#*+************************++*********++++************########*********##############################################################################
*******************************#**#*###*#***##*+++++******************#########################################################################################
++*#************+*****##**###******#******##***+++****************##############*#*############################################################################
+:++********************************+**********++++*****************#############*#############################################################################
*+::*******#**************##********##**********++++******************##########*##############################################################################
+++;:;+***+***************#*******###*************+++*******************######**###############################################################################
+*+*;::++**************+********************++******++******************##**#*#################################################################################
**+*+*+:;++***********************************************************##*######################################################################################
#*#++***+;:;+*********#***************************#####*************#####*#####################################################################################
##*#*++***+;;;;++:;;++****##**#*************###########*********#*#####+#######################################################################################
#####**;+******+;;++;+++**********+*#**###############********######**#########################################################################################
#########*+***##***++++*******##********##****######****##**###*#####*#########################################################################################
############****#*+*++******####*****+#*******######*******###*#*##############################################################################################
#################*************************##########****#***###################################################################################################
$####**+++;+;;;::;:;:::::::::;;;;;+++++++++++++++*******+**###########**########################################################################################
##*++;++++++++++;:;;+::;;:;;;;;;;+++++++++++++****#***##################*######################################################################################
#++;;+;;;+*;++++;:;;;;++;;;;+;++++++*+*+++++++++*#+*##*###########*############################################################################################
,:;+++;++++;;++;+:;+;::;;;;;;;+++++++++++++++++++++++***#######################################################################################################
,::;+++++++++++*;:;;::;;;;;;;++++++++;;;;++*++++++++******#####################################################################################################
,;++++:;;+++*+++++::::;;;;;;+;++++;;;;;+++++*+++++**********###################*###############################################################################
**++;+;+++**+**+;+;:;;+;;;;;;;;;++++++++++++++*++*++****+++***##################*##############################################################################
+++;+*******++*++;:;;;;;;;;;;;;;;++++++++#+++++*+++*++++******###################*#############################################################################
;+******++*+++;+::,:::,:;::::::::;;+++++**+*#********#******#****##############################################################################################
+*****+****++;:;::::,::::::::::;;;++++++#*+++******+**####**********########*######**##########################################################################
+******+***++;,:,,::::::;;;;;;;;++++++++++++++*****#####******+*******##**###########*#########################################################################
++++*+;***+++;,,,,::::::,:;:;;;++++++++++++++++++*#####******+******###########################################################################################
+++++++**++++;:,,,,,:::::;;;;;;;+++++++++++++++++*****#***++****######################*########################################################################
,*+++++*++++;;++:,,,:::::::;;;;;++++++++++++++++****+*****+***########################**#######################################################################
+*++++++*++++;;;,;;,::::::::;;;;:;;++++;;+++++****##**********#########################*#######################################################################
*+++++++;;+++++++,+:::::::::;;;;;;;;;;++++++++**####*****######################################################,:;++*##########################################
******++++;;++;;;::+,:;::::::;;;+**++++***###*+*##**####################################*#################### .,;:;++*+########################################
******+*+++++++;;;;;;::::::::;;;+++*******##***+****####################################*###################  ,::;;++++;#######################################
**+*****++****++++;;;;+;:;;;;;;;++++****#+*******++***********###########################*##################..,:;;+++**;#######################################
*******+*+******++;;;+++;;;;;+++++++****####+*+++++******#********##########################################*::;+++***+########################################
*****+**********;;++*+**++++;;+;******+++********************++*********######################################+++++*+##########################################
******+*+*******#*+++****++++++;++#*+++++***##*******#**+****+**********#######################################################################################
+********+**********#********+++++++++++*#****######********************#################*#####################################################################
*+++++++******************#*+*******+++++++*****#####*****######****####################*######################################################################
:.,+:++**#******+******;*+*****+***#****#*+++***####*##*******#*****####################*######################################################################
.,,:++*:.,;+********++***++*******+********+******##**************#############################################################################################
+++::+********++*#******+*********##****************+*************##############***####*#######################################################################
********************++++++*+++++**+++*+*+**********+++++++********########*********####*#######################################################################
*******+**********+****+****++**++++****************++++**********######**********####*########################################################################
******+************************+**#****************+************########**********###*#########################################################################
*******+*****+******************##****+*********+++++***********######**#######################################################################################
****************************+*******#**#*****#*#+++*********************#######################################################################################
;;***#**********#***#*******##**#***********#***+++*****************##########*#*#*############################################################################
++;*+*************************##****#*********#*++++****************#############*#############################################################################
++;:;*****************************##**##*********++++*******************########*##############################################################################
++++,:++***+************#***********###************++*******************######**###############################################################################
*+***;::++**************+***********************************************##**###################################################################################
**;***+;:;++**#**#****************************************************##*######################################################################################
#**++****;;:;+**************************************####************#####*#####################################################################################
###*#;++**++;;+;++;;++****##****************############**********#####*#######################################################################################
######*++*******+;+++;;++*********#*****##############**********####**#########################################################################################
########*+++**##***+++++******##********+**#**#######***##**###*###############################################################################################
############**********+*******##****#*+*********####*******###*#*##############################################################################################
################****************************########****#***###################################################################################################
$#####**++++;;;::;,;:::::::::;;;;+++++++++++++++++***#*****###########**########################################################################################
##*+++++++++++++;,::;;::;:;++;;;;;+++++++++++++*+*****##################*######################################################################################
*++;;;++;+++++++;;:;;;;++;;;;+;++++++*+*+++++++++**+****#######################################################################################################
:::+++;;+++;;+++++;;+;;;;;+;;;;+++++++++++++++++++++****#######################################################################################################
,,::;+++;+++;++++;;;;::;;;;;+;++++++++;;;;;+*+++++********###################*#################################################################################
:::+++;::++++*++++;::::;;;;;;;;;++++;;;;+++++*+++++***********#################*###############################################################################
+++++++;++++****+;+;;+++;;;;;;;;;+++++++**++**+*++**+++*#*****##################*##############################################################################
*++;;+**********++;:;;;;;;;;;;::;;+++++++***++***+***++++*****##############*####*#############################################################################
+;++*****++*+++;+;:::::::::::;::::;;++++**++****++***+##*****#****#############################################################################################
++********+*++;::::::,::::;::::;;;;++++++*+++*********#######*********######*######**##########################################################################
+*+*****+****+:,,,,,::;::;;;:;;;++++++++++++++++**+*######************##**###########*#########################################################################
**++**++***+++;,,,,::::::::::;;;++++++++++++++++****####******+*******###############*#########################################################################
+*++++++**++++;:,,,,:::::;;;;;;+;+++++++++++++++*****#*******+**######################*########################################################################
*:++*+++**+++++;;:,,::;;::::;;;;;;++++++++++++**+******#******########################**#######################################################################
:+++++++++++++;;;:+;,,:::::::;;;;;;;+++++;+++++***************#########################*#######################################################################
+**+++*+++;+++++++:+,:;;:::::;;;;;;;;;;;+++++++***####******##########################**#######################:::+++*#########################################
+*******+++;;++;+;:,+::::::::;;;;;+**+++*********#**####################################*###################*..,:::;++*;#######################################
***+***+**++++*+;;::++::::::::;;+++*++**#*###*********##################################*###################,..,::;++++++######################################
*********+++****++++;;;;;;;;;;;;+++;+*****+##*****+***********###########################*################## ,,::;++++*++######################################
********+*+******+++;++++;;;;;+;*++*++**####****++++*****+********###########################################,::;+++***+#######################################
******+**********+++++*++++++;;+++*****+++*#####**************++********######################################*;+++++*#########################################
***+****++**********++****+++++++++***++++**####**#************+**********#####################################################################################
++********+********************++++++++++**#****######****##**************###############*#####################################################################
++++*;++*********************++******++++++*******####******####****####################*######################################################################
.,:,*+:+*+**************++******++*********+*+**+*##**##**********######################*######################################################################
..,.:;+;,.:++********++****++**************#+***#***#*************#############################################################################################
++++;,++****+++++*#***+****+**********************#**++***********################*####*#######################################################################
**********************+++++*++++++**+++***+*********++++++********########*********####*#######################################################################
**+***++++********************++**+++***************++++**********######***********###*########################################################################
******************+**************+**#*********##****************########**********###*#########################################################################
**#*****+*+*#*+*******************##****+*##******++************######**#######################################################################################
****************************************####**##*+++************####******######*##############################################################################
+++*#+************************##*******##*****#**+++****************##########*#*#*############################################################################
++;;+;************************###***###*****##***++++*******************#########*#############################################################################
**+;:;***************+**********##**######****#****+++********************##*###*##############################################################################
****;:,+***#+*************#******#******************++******************######*################################################################################
******:::++*************************************************************##*####################################################################################
#+++***+;:;++*********#***************************************##********#######################################################################################
#*#+++****;;:+****************************************###***********#####*#####################################################################################
####*+*+***++;+;;++;++++****##**************############*************##+#######################################################################################
######**;+******+++;++;;++***************###############********####**#########################################################################################
#########*++**##*****+++++******####****#*###*########**##**###*###############################################################################################
############******#*+*++******####**************######******##*#*##############################################################################################
################****************##**********########****#***###################################################################################################
$####**++++;+;;;;,:;;::;;:::::;;;;+++++++++*+++++*****#*****##########**########################################################################################
##*+++;+;++++++++::;;;;;;;;;++;;;;;+++++++++++++*******#################*######################################################################################
*++;;;+;+;++;++++;:;;;;;;;;;+;;;;++++++*++++++++++******##########**###########################################################################################
:::;++;;;+++;;++;;:;++;::+++;;;;++++++++++++++++++++*****##################*###################################################################################
:,;:;;+++;+;++++++:+;;::;;;;++;++++++++;;;;+++++++*********###############*####################################################################################
;,;;++++:;;++++++++;;:::;;;;;;+;+++++;;;;++++**+++********#***##############*##*###############################################################################
+**+*+++++++*****+++;;+;+;;;;;;;;+++++++**++++***+++*++***++***#################*##############################################################################
*+++;++**********++::;;;;;;;;;;;;;;+++++++++******++**++++#****##################*#############################################################################
+;;+******++#+++;+::::::::;;::;::::;;+++++*+**********#*******#****############################################################################################
,++********+*++:::::::,:::::::::;;;;++++++#++*+*****+*######**********######**#####**##########################################################################
++*******+****+::,,,,::;;:;;;;;;++++++++++++++++****########************##**#########*#########################################################################
*******+++**+++:,,,,::::;;::::;;++++++++++++++++****####************#################*#########################################################################
*+*++++++**++++;,,,,,::,::;;:;;;;;++++++++++++++****###***********####################*########################################################################
**:++*+++**+++++;:,,,::;;::::;;;++++++++++++++++*******+#*******######################**#######################################################################
*;+++++++++++++++;,;,,::::::::;;;;;;+++++++;++++**##**##********#######################*#######################################################################
:++*+++*+++++++++++:+:;;::::::;;;;;;;;;;;+++++++**######**#############################*#######################+,:;+++#########################################
*+******+++++:++:++,;+:;::::::;;;:++***++*#*****+*##**##################################*####################; .,:;;+++++######################################
********++*+++++++;;:++::::::;;;;;*++****##*##**++******################################*#################### ..::;;+++++######################################
****++**+*++++****++;;+;;;;;;;;;;++++++***;+##*****+**********###########################*##################* .,:;;++++*+######################################
******+++**********+++;;++;;;;;;+*+++++**###****++++******#*******###########################################,,:;;++***++######################################
*****+*************++++++++++++++++*****+++***##****************++******#######################################:++++**+########################################
****+******+********++*+***+++++++++***++++***######**********************######################################*##############################################
*++*********+*****************#*++++++++++******########******************###############*#####################################################################
*+++++;+++******++************++******++++****+*########******####****##################*######################################################################
: ,::+*++*++**************++++*****++*****#*********#####*******#*****##################*######################################################################
 ...,,:++::;;*********++*****+****#**+*******+**#*#*##************#############################################################################################
+++++:,;+*****++*+#+****++********************#****#***+**********##############****###*#######################################################################
+*+***+**************++++++++*+++++*#+++**********#***++++********########********#####*#######################################################################
+*++**+*+*+********************+++**+++**#************++**********########*********###*########################################################################
**********************************+*****************++********##########**********###*#########################################################################
**#********+***+************************************++************######**#####################################################################################
++*****#*******#*******************#**#****#*****#+++***********####******######*##############################################################################
++++******************##****+***##****#####*******++******************##########*#*############################################################################
+++;+*;*******************************##**********+++*******************#########*#############################################################################
***+::+*******************************######**##****++**********************####*##############################################################################
****+;::+***#*+**************************************++*******************####**###############################################################################
+**+***;::+;#++*********#*************************************##**********###*#################################################################################
**++****;;:;++****+*******************************************##*********######################################################################################
#***++**+*+;;;+***********#***************************####**********#####*#####################################################################################
####**;*++*+++;;;+*+++**+*******************#############***********###*#######################################################################################
######**;++******+;;;+;;++*+************#**#############*********###**#########################################################################################
#########*;++*##******++++******####********##########******###*###############################################################################################
###########*++****#***+++*******####**##+*#*******####******##*#*##############################################################################################
################****************************########****#***###################################################################################################
$####**+*+++;:;;;,;:;::;;::::::;;;;;+++++++++++++++**+*#*+**##########**########################################################################################
#***++;+++++++++++:::;;;:::;+;++;;;+++++*+++++++********################*######################################################################################
*++++;;;++++++++++;:;;;;++;;;;++;+++++**+*++++++++*******######################################################################################################
;:,;++;;;++++;;++;;:;;+;;;++;;;;;+++++++++++++++++++++****#################*###################################################################################
,,:,;;;+++;+;++++++;;;;::;;;;++;++++++++;;;;++++++++********###################################################################################################
::,:++++;;+:++++++++;;:::;;;;;;+;+++++++++++++**++*********#**##############*##*###############################################################################
+++++*++;++++++***+;;;;+;+;;;;;;;;;++++++*******+*++**++**#*+***################*##############################################################################
+++++;++**********;+::;+;;;;;;;;;;:+++++++++*******+****++******#################*#############################################################################
++;;******#*+*++;;;:::::,:::;;;;;:::;;+++++*+*#********###****##***############################################################################################
;:+*********++++:;:::::,::::;::::;;;++++++**+++*****+***####**#*********####**#####**##########################################################################
+++*******+***++::,,,:::;;:;;:;;;+++++++++++++++++****######************##**#########*#########################################################################
++******++***+++:,,,,:::;;;;:::;;++++++++++++++++++**#####**********#################*#########################################################################
*++*++++++**++++:,,,::::::;;;;;;;+;+++++++++++++++***###**#*******####################*########################################################################
+**;++*+++**+++++;,,,,::::::::;;++++++++++++++++******#*+*******######################*########################################################################
;*;+++++++***++++;;,;::::::::::;;;;;;++++++++++++*##************#######################*#######################################################################
+;++**++*++++++++++;;;::;;:;::;;;;;;;;+;;;+++++++#**####***#*##########################*#######################+.,;;+++*#######################################
+++******+++*+;+;;+;:++:::::::;;+;;++***+++***#*******##################################*####################*..,:;;;+++;######################################
;********++*++**+++;;:++:;::::;;;;+*++*+**#*#*##********################################*####################...::;;+++++:#####################################
*****++***+*++*****++;:++:;;::;;+;++++++##++####*********#****###########################*################### ,,,:;+++**+;#####################################
****+********+******+++;++;;;;;;+++++*++*********+++**********##****#########################################;::::+++***+######################################
**********+**********;+++*++++++++++*****+++****##******#********+******#######################################:;+++**+########################################
*****+****+*+********+++****+++++++++***++++****####****##****************#####################################################################################
**++*********+**************#***+++++++++++*****########******#*******##****#############*#####################################################################
*+*+*+*++++***********#*********++*****+++++++++**######**##**######**##################*######################################################################
+;.:;;+++**+***************++*+*****+***#***++*+##****##**************##################*######################################################################
  ..,,,:*+;;+++*******++++****+**************#+*******#***********#############################################################################################
,+;;;;,:;+*+**+++***+*****+*************************#***+*********################**###*#######################################################################
;+*+*+++************#**+++++++*+++++*#+++++**+********++++********##########********###*#######################################################################
*+**+**+++*+**#*****************+++**+++******#*******++**********##########*******###*########################################################################
***********#**************************************#*++********##############*******##*#########################################################################
************++#*+*******************##************#**+**********########**#####################################################################################
******#******************************#*************++***********######******####*##############################################################################
+++++*****************************##**************++************##******########*#*############################################################################
++++:+++**************************##**####**********+++*******##**********#######*#############################################################################
****+::+******************************##**####*******++*******##************####*##############################################################################
****++::,******+**********************************************##**********####*################################################################################
*******+::;+;*++**************#*******************************##**********###*#################################################################################
**+++****;;:+++***++************************************##****####*******######################################################################################
#*#*+++***++;:;+**********##**************************####**********#####*#####################################################################################
####+#++++**++;;+;++++++*+******************##############**********###+#######################################################################################
######**+:++*****+++;;++++++++************##############*********###**#########################################################################################
########**+;++###******+++++******####********##########****###*###############################################################################################
############++****##**+++*******####**************####******##*#*##############################################################################################
################****+*************##**********######****#***###################################################################################################
$####**+*++++;:;+:,::;::;;;;;:;;;;;+++++++++*++++++****#*****#########**########################################################################################
#***++;+++;+++++++:,:;;;::;;;+;;;;;;++++**++++++********################*######################################################################################
*+++++;+++;+++++++;:;;+;;+;;+;;+;;++++**+*+++++++++****#############*##########################################################################################
;:::+++;;;+;+;;+++;;;;++;;;++++;++++++++++++++++++++******#################*###################################################################################
,,::,;;;+++;+;+++++;;;+;::;;;;++;++++++++;;;;++++++*********###################################################################################################
,;,:,+++++:+;+++++++;;;::::;;;+++++++++++++++++*++++************############*##*###############################################################################
+;+++++++++++++****++;;;;;;;;;;;++;+++++++*+******+*++**+*******################*##############################################################################
+**+++;++*********+;;::;;;;;;;;;+;;;++++++++++******++****+*****#################*#############################################################################
**+:++******+**++;;;::::::::;;;;;;::;;;++++*+**#********####**###***###########################################################################################
++:+*********+*+;:::::;:,::::;::;:;;+;+++++*+++*********########********######*####**##########################################################################
++++********+***;::,,,::;;;;;;:;;;++++++++++++++++****########***********############*#########################################################################
++********++***+;::,,,:::::;;;:;;;++++++++++++++++****######********#################*#########################################################################
*****+++*++***+++:,,,,::::::;;;;;;++++++++++++++++****###*##******####################*########################################################################
+++*;*++++***++++++,,,,:;;;::::;;;+++++++++++++++***####***#****###############################################################################################
*+*+++++++++***+++;:,;::::::::;;;;++;;;++++++++++*######**##****###############################################################################################
++*++*****++++++++++,;::;;::::::;;;;+++++;;;++++++**######**###########################*########################..:;++++#######################################
*+++******+++++;++:+:,++;;:::::;;;;;++***+++*#********##################################*###################*#...,:;;++++;#####################################
*;***********++++*++;;,;+;;;:::;;;;++*++******###*+*******##############################*####################:..,:;;;+++*+*####################################
******++*****+++****+++:;+;;:::;;+;++++++++;#####********+##**###########################*###################..,:::;++++++#####################################
**************+********++;+;;;;;++++#+**++*####***++********#*##****##########################################:::;;+++***;#####################################
****+*****************+;++++;+++++++*+****+++*********************+*****######################################*;;;+++***#######################################
***********++*********++++***+++++++++***++++***####**********************#####################################################################################
***++*********+*************#****+++++++++++***#****######******************#############*#####################################################################
**++**++++*+**********************+*****++++**+*+*****####**#########***################*######################################################################
+++.,;+;+++**************#***+*++***++***#**#****###**###***********##**################*######################################################################
. ..,,,.,+*+;;+*+*******+++*****+*******+#**********##**************###########################################################################################
+,::,:;,::+*#;**++**#***********************************++**********##############**###*#######################################################################
*++++*+*+***************+++*++++*+++++**+++++***********+++*******##########********###*#######################################################################
**+*****+*;+****+************+****+++**+************************############*******###*########################################################################
*************************************+************###*********############**##*****##*#########################################################################
**************************************************##************########****###################################################################################
*****************#********************#*****####***#++**********########****###################################################################################
++++*+******************#**********##*******#********+**********##********######*#*############################################################################
+++++++*+*******************#*******##*####*****##**++**********##********####*##*#############################################################################
+***++:;+*****************************##########******+*****####************####*##############################################################################
******+:::******+***********************####****************####**********####*################################################################################
****+***+:::++*++***#*********+*********************************##********###*#################################################################################
**+++*****;::+++**************************************######****##*******######################################################################################
#*#**+;+****+;:++*************************************######********#####*#####################################################################################
#####*++++**+++;;;;+**++***+****************##############***********##+#######################################################################################
######**#;#+******++;;;++++++*+*******##******##############******##**#########################################################################################
#########**;++*##*****+*++++******######******##########****###*###############################################################################################
############*++********++++*******####**##********####******##*#*##############################################################################################
################******************##**********######****#***###################################################################################################
$####***+*+++;;;;;:::;;:;;;;;:::;;;;+++++++++*+++++**********#########**########################################################################################
#***++;;;++++++++++::;;++;;;:;;+;;;;;+++***++++++*+***##*##############**######################################################################################
*+++;+;+;++;+++++++;:;;;+;++;;;+++;+++++**+++++++++*****#######################################################################################################
;:,;++++;+;+++;++++;;;;;+;;;++++;+++++++++++++++++++******################*####################################################################################
;,.:,;+;;+;+;+++++++:;;+;:;;;;++++++++++++;;;+++++++*********##################################################################################################
,::,:+***+;;;;*++++++;;;:::;;;;+++++++++++++++++*+*++*******#***#############*#*###############################################################################
++;;++*+++;+++++**+*++;;;++;;;;;;+++++++++++*********+*****##****###############*##############################################################################
*+*++++++++********+;;;;+;+;;;;;;;;;;+++++*+*********++*******##*################*#############################################################################
**++:+******#*+*++;;;;;:;::::;;;;;;;;;+;++++*****+********########**###########################################################################################
+++;+*****#****+++::::;;;:;;;;;;:::;;+++++++#*+*+*******#########*********####*####**##########################################################################
*++++*******++***;::,,,::;;;;;;;;;;+++++++++++**++*****#########**********###########*#########################################################################
**+*******+++***++::,,,,:::;;;;;;;;+++++++++++********########******#################*#########################################################################
******+****+***+++:,,,,:::::;;;;;;;+++++++++++++++++**#####*#*****####################*#*######################################################################
*+;*++++*++****+++++:,:::;;;::;;;;;+++++++++++++++****##**********#####################*#######################################################################
*++*++++++++****++++::;:::::::::;;;;++;;++++++++++**##########**###############################################################################################
*++;++**++*++++++++++:;:::;;:;;;;;;;++++++++;+++++****######**#########################*######################*# .:;;+++#######################################
**+++******+++++;++;;::;+:;;::::;;;;;+++***++*****+*****################################*#####################...,:;;+++++#####################################
**+*******+*+**++++*++;:+;;;::::;;;;++**+*******##**#*****##############################*####################,.,.,;;;+++++;####################################
*******+****+**++*****++:;+;::::;;;++++++++;**#####*********#############################*###################,.,,::;++++*+;####################################
*******+*****************+++;;;;;+++***+**++**##*+++++**********##****########################################,::;;;++***+#####################################
*****+*****+*+*********+;++++;+++++++**+***+++************#*************#######################################++;++++***######################################
***********+*+**********+++*+*+++++++++***+++*****####**####**************#####################################################################################
*****+*************************#**+++++++++++***#*****######******##********#############*#####################################################################
****+**++********************************+++++******########**########******############*######################################################################
++*+,:++;;++************#******+*+****++**********####**##************##################*######################################################################
:,.,.,,..,:+*++++*******+++++*********##**+***#*+*##****************###########################################################################################
++,,::,:.,:++*;+**++**********************##****#*****#*************##**###############*#######################################################################
***+++***++***************++++++++*+++++**++++**+*****#*++********##########********###*#######################################################################
++*+******+++***********************++**+*+**###****#***********############********##*########################################################################
**************************************++************##**+*****##############*******##*#########################################################################
*******************+****#***************##****+*****************########******#################################################################################
***************#****#+****************###*****####****+*******##########******#####*###########################################################################
+++;+*+******************************###**####****#*++**********####******######*#*############################################################################
*+++++++**************************###########*****##************##**********#####*#############################################################################
+*****+:;++*******************************##########********######**********####*##############################################################################
****++++:::+********************************##**##******+*****####**********##*################################################################################
**+***+**+:,;+++#++*********************************************##********###*#################################################################################
***+++**#*+:::++*+************************************######****####*****######################################################################################
#**#***;**+**+:;++**********##************************######********#####*#####################################################################################
####***+++****++;;;;**************************##############**********#+#######################################################################################
######**#+:++*****+++;;;++;+++*+*******###****############****##*###**#########################################################################################
########**++:+***********+++++******######*******#######****##**###############################################################################################
############*+++********+++*****#*######**#***##**######****##*#*##############################################################################################
################*++***+***********####********######****#***###################################################################################################
$####***++*++*:;;;::::;::;;;;;::;;;;;+++++++++*+++++*********#########*#########################################################################################
#***+++;+++++++++++::::;;;;;;;+;+;+;+++++***++++++********#############**######################################################################################
*+++;++;++++++++++++:;;;;++;;;;;;+++++++**+*++++++++****##*####################################################################################################
;;::++;+;;;;++;+++++;;:;;+;;;+++;+++++++++++++++++++********##############*####################################################################################
+,.,,:;;;++++;;+++++;;;+;;:;;;;+++;+++++++++++++++++**********#################################################################################################
:,:::,+++*;+;;;+;+++++;;;:;:;;;;++++++++++++++++*****+**********###############*###############################################################################
;+;;+++*+;+++*+++***++;;+;+;;;;;;;+++++++++++*********+***+*#****###############*##############################################################################
++*++++++++*********++;;;;;;;;;;;;+;;;;++++++*++*******+****+*##**###############*#############################################################################
***++:++*****#****+;;;;;::::::;;;;;;;;;;;+++**+***+*******##########**#########################################################################################
++++;+**********++;::::;;:::::;;;;;;;;;;+++++*++**********########********#########**##########################################################################
**+++**********+**;;::,,::;;;;;;;;;;++++++++++**********##########********###########*#########################################################################
**+++********+****;:::,,,:::;;;;;;;;++++++++++**********######********###############*#########################################################################
*******+++*+****+++:,,,,:::::;;;;;;;++++++++++++********####******####################*#*######################################################################
**+++*+++++++***++++;,,:::;;;;;;;;;;++++++++++++++++**#####*******#############################################################################################
******;+++*+++***++++:::::::::::;;;;++++++++++++++++*#########**###############################################################################################
**+:,++*++**++*++++++;:;::;;:::;;;;;+++++++++++++++**##################################*######################## .::+++++######################################
***+++****++++++++++;;::+;;;::::;;;;++++++**+++***********##############################*####################*. ..::;;++++:*###################################
***+********+*+*++++*+++:;:;;;:::;;;++*+*+******###*+*****##############################*#####################..,,:;;+++*++*###################################
********+*******+******++:++;::::;;++++++++;+*####**********+###**#######################*###################+ ,,::;;+++*++*###################################
********+********+*********+;;;;;;+++***+***+*###*+++***##****##**##**########################################.;::;;+++***+####################################
******+********+*********+;+++++++++++**+***+++***********##**************#####################################*:+;+++***######################################
************+*+**********+++++*+++++++++***+++******####*####***************#####################################*#############################################
+*****++*******#*******************+++++++++++****#***######****************############*######################################################################
+*+**+**++***********+********************++++******#*##################****############*######################################################################
+++*;+;+++++++*+*****************+++***************#########**********##############*###*######################################################################
:.,,:,.,..,,+*++++********++++**************************************###########################################################################################
++;:.,:,,:,:+**+;++*+*********+*************##********##*****+******##############**###*#######################################################################
**+***+++++;+**************++++++++++++++***+++*******************############*******##*#######################################################################
**+********+*++***++************+*****++**+*+***####**#*********##############******##*########################################################################
*******************************************##*******************############**##**###*#########################################################################
+*******+*******+***+**##*#***************##********##**********########******##**#############################################################################
:****************#***#++**********************####**************########******#################################################################################
++++:+++************************#*****####***###**###++*******######********####*#*############################################################################
*+++++++******************************##**####****************######**********###*#############################################################################
*******+:;++**********************##****##########**##**+***########*********###*##############################################################################
********+;::*#******************##**********####**************####***********#*################################################################################
***+**++*+;;::+++*++**********#***********************************##******###*#################################################################################
****+++****+;::++*************************************########**####*****##*###################################################################################
#******++*****;;;++***********##**********************######********#####*#####################################################################################
###*#*#+++******;;;;++****************##******##############**********#+#######################################################################################
######****:++******++++;;;+++++*++******##******##########**####*###**#########################################################################################
########***+:;+*********+++++++*******######**#***######****###*###############################################################################################
############*++++*****#***+++*******####**##**##**######****##*#*##############################################################################################
################**+*#***************####******#######***#***###################################################################################################
$####**+++**+*+:;+;:;:::::;;;;;:;;;;;++++++++++++++++********#########**########################################################################################
#****+++;;+++++++++;:::;+;;;;;;;++;+;+++++***+++++******###############**######################################################################################
*++++;+++;++++++++++;:;;;+++++;;++++++++****++++++++**+**######################################################################################################
+:;;;++;++;;;+++++++;:;;++;;;+++++;++++++++++++++++++*******##############*####################################################################################
+:,,,,+;+++++++;+++++:;;+;;;;;++++++++++++++++++++++++********#################################################################################################
;.;:::++++*;;;;;+;++++;++;:::;;;;++++++++++++++++****+******##**###############*###############################################################################
:++::+++*+;;;+++++***++++;;;;;;;;;++++++++++*+**************##****##############*##############################################################################
+++**+++++++********++;;;;;+;;;;;;;++;;++++++***+*******+******##################*#############################################################################
****++:;*******#***+;;;;;;:::::;;;;;;;;;;+++++*+**+*******##########**#########################################################################################
+**++;+**********++;::::;;;::::;;;;;;;;;+++++*#*+*********##########******#########**##########################################################################
*++++++***********+;;::::::;;;;;;;;;;+++++++++**********############********#########*#########################################################################
*****+******+*+*#**;::::,,::;;:;;;;;;;++++++++**********########******########*######*#########################################################################
********++***+****+;:,,,:,::::;;;;;;;+++++++++++********#####*##****##################*########################################################################
**++++*+++**++***++++;:,,:::;;;;;;;;;+++++++++++++++***#####**##**#############################################################################################
***+**+,++**+++****+++::::;::::::;;;;+++++++++++++++**##########**#############################################################################################
**+++.*+***+*++++++++*+:;:;;;;;;;;;;;+++++++++++++++**########**#######################*########################  .:;+++++#####################################
****+++*****++++*++;+;:::+;;;;::;;;;;;;++++***+++#********##########################*###*#####################;...::;;+++++####################################
+****************+++**+++:;;;;::::;;+++++**+*+****##*+******############################*#####################:.,,:;;;+++++:###################################
*****************+******++;+;;;;::;;;+++++++:+**##***#******#*###########################*####################..:::;;+++**+:###################################
******************+*********++;;;;;;++****+*++**##*++*****##******####**######################################.:::;;;++***+####################################
****************+**********++++++++++++******+++******##****#*************######################################:+;;++**#*#####################################
+*************+************+++**++++++++****+++***##**##**####**************#####################################*#############################################
,+******+***************************++++++++**+***##****######****##*********###########*######################################################################
,+*+***+***********+*******************+***+++++*****#**#########*######******##########*######################################################################
,+++++++++;++*++**************#*****++**************#####*##************############*###*######################################################################
;:,:;:,.,.,,:;*+++***********+++*********************##***#*********##################*########################################################################
++;;:,.,,,:,:++**+;;++**+*************************#*****#***************##########**###*#######################################################################
***+*+**+++*;;***************+++++++*+++**+**+++******************############*******##*#######################################################################
******+*#***+*++*****+************+****++*********##**##********##############*******#*########################################################################
**************#**#************************+***********##********############**##**###*#########################################################################
*+**********************#***#*************##********##**+*******##########********#############################################################################
;:**************+**+****+*************#****#****#####***********########**##**#################################################################################
+++++;++********************#***********####**####***#**********######********##*#*############################################################################
**+++++++++***************************##########****#*#*******######**********###*#############################################################################
+******++;;+++**************#*******####**##############******######*********###*##############################################################################
**++++**++;:;*****#***************##**********##**##************####********##**###############################################################################
****+******+:::+****+***************#*****************************##*******##*#################################################################################
************+;::+++*************************************######**######***######################################################################################
#*****+*++****++;;;+**#*********##********##**********########******#####*#####################################################################################
###***#*+++***#*++;;;+******************##****##############**********#+#######################################################################################
######****+;++******++++;;++;+++**++**##**##****##########**####*###**#########################################################################################
########**#*+:++#********+++++++******########****########**###*###############################################################################################
############*++++*****##**++++****#***######****########****##*#*##############################################################################################
################**+********+**********##****##########**#***###################################################################################################
$####****++++*+:;;;,;:::::;;;;;;;;;;;;+++++++++*+++++*********########**########################################################################################
#****+++;;+;+;++++++,::;;;;;;;:;+++;;;++++***+*++++*****###############**######################################################################################
*++++;++++++++++++++;::;;+++++++++++;++++*****++++++****#######################################################################################################
+;+;;+;;++;;;+;+;+++;:;;;;++;;+++++;++++++++++++++++++******###############*###################################################################################
+;,,,,:;++++++;+;++++;;;+;;;:;;;;+++++++++++++++++++++********#################################################################################################
;,::::,+++++;+;:;++++++;+;;:;:;;++++++++++++++++++****+*****####**#############*###############################################################################
:;++::++**+;;;+++++***++;++;;;;;;;;;;++++++++++***************#***##############*##############################################################################
*+++**++++;++********+++;;+;++;;;;;;++;;++++****++*******+******#################*#############################################################################
****++;;;+****+*****+;;;;;:::;::;;;;;;;;;;;+++**+*#*******############**#######################################################################################
++++++;+***********+:;::;;:;::;:;;;;;;;;;+++++************##########********#######**##########################################################################
**+++++**********+*+:;::::::+;;;;;;;;;++++++++++*********###########********#########*#########################################################################
****+++********+****:::::::::;;;;+;;;;++++++++**********##########******#############*#########################################################################
*********+****++***+::,,:::::::;;;;;;+++++++++***********#####*#****##################*#*######################################################################
****+++*++++++****++++::::::;;;;;;;;;+++++++++++++++****####***################################################################################################
****+**+,++**+++****+++,;:::::::::;;;;+++++++++++++++**########################################################################################################
****++.+++**+*++++++++++;;:;;;;;;;;;;;;++++++++++++++***###############################*########################  ,:;+++*;#####################################
******++****++*++*+++;;;,;++;;;;;;;;;;;+++++***++******#################################*####################*+:.,,:;;++++++###################################
*****+*+******+***++++++++;;:;;;:::;;;+++*+*++**#####**#****############################*#####################...,,:;;++++*;###################################
******************+*******+;+;;;:::;;+++++++;++*****##**********#########################*####################..::::;;++**++###################################
***********+******************+;;;;;+++****+********++****##****######**######################################;:;:;;;++****+###################################
**************+*************++++++;+++++******++******##********************####################################:+;;+++**+#####################################
:+*************+*+**********+++++++++++++***++++*#****########***************###################################*###***########################################
:,***********************************+++++++++****###***########**######*****###########*######################################################################
+:*++***+***********+*******************+*#*++**++*****###################****##########*######################################################################
+.*++*+*++++++*+*+*****************+**+*****+**#*****#######************############*###*######################################################################
+;,:::;:.,,,,;;+++**++********+++***********#*********###+##********##################**#######################################################################
++*;::...,,:,;++**+;;;+***********************##**##****##**************##########**###*#######################################################################
******+*+++++;:+**************++++++++*+++++***++++***************##############*****##*#######################################################################
******++******++************************+++*****##########******##############*******#*########################################################################
**********+****#******************************##****************############****#####*#########################################################################
******************++************************##********#*********##########******###############################################################################
++*********************##+****************###*****####**+*******######******##**###*###########################################################################
**++*++*++**************************++***##*##******************##**##********##*#*############################################################################
***++++++++***************##******#***############****#*******########********###*#############################################################################
++****++++:;++**********************######**############******######*********###*##############################################################################
**++++***++;:;*#**************##******##******####**##**********######******##**###############################################################################
***********+;::;+***++*#******************************************##*******##*#################################################################################
****+***+****+::;++*#***********************************######**######***######################################################################################
#*****++++*****+;;:+*************#********####********########******###*#*#####################################################################################
####****+;++******+;;;++****************####****##############********#*#######################################################################################
######*****++++*****++++;;;;+++++**++*##**####****##############*###**#########################################################################################
#########***+;;++*********+++++++*****########**#***######**###*###############################################################################################
#############*+;++****###***+*********########**########****##*#*##############################################################################################
################**++******************####**##########**#***###################################################################################################
$####****+*+*++;;:;::,:::::;;;;;;;;;;;;+++++++++*+++++*******#########**########################################################################################
#****++*;;;;;;++++++;:::;;+:;;::;;++;+;+++****++++++****###############**######################################################################################
*++++;;+;++++++++++++;::;;++;+++++++++++++*****++++++****######################################################################################################
+++;;++;;++;;;*++;++++:;;;+++;;+++++;++++++++++++++++++*****###############*###################################################################################
;+:,,,:;+++++++;+;++++;;++;;;;;;++++++++++++++++++++**+********################################################################################################
;;.;:,,;+++++;;;:;+++++;++;;:::;;++++++++++++++++++*********####**#############################################################################################
,:;+::;++**+;;;++++***++;+++;;;;;;++++++++++++++**************##**##############*##############################################################################
+*++++++++++++********++;;;+;;;;;;;;++++++++**+***+*************#################*#############################################################################
+*****++;+***********+;:;;;;:;;;;;;+;;;;;;;++++***#********###########**#######################################################################################
++***++;************;;::::;;;;:;;;;;;;;;;++++++*************##########******#######**##########################################################################
*+*+;;++**********+*+;;:::::;;;;;;;;;;;+++++++++**********############******#########*#########################################################################
*******+**+*****+***+;;::::::::;+;;;;;;+++++++************##########****#############*#########################################################################
***************++***+;::::::::::;;;;;;++++++++************#####*######################*#*######################################################################
******++*+++**++****+++:::::;;;;;;;;;;;+++++++++++**++**#######*###############################################################################################
********+,++**++++***+++::,::::::::;;;++++++++++++++++*#############################################################+*#########################################
******:+:+*****+*++*+++*;;;:;;;;;;;;;;;+++++++++++++++***##############################*########################..,,;++++*#####################################
******++;*******++*++++;::;+;;;;;;;;;;;;++++++***++*#*****##############################*######################,.,,:;;++++*;###################################
**+******+*********++++++++;;;;;;;;;;;;+*+++**+***####****##############################*##################### .,,,:;;++++++;##################################
*******+****+*******+******+++;;;;;;;;;++*++++*++***####********#########################*#################### .,::;;;+++**++##################################
************+******************+;;;;;;++*****+**+***++******############**############*#######################*.;;;;;+++***;###################################
****************+*************++;;++++++*******++*******####****************##################################*#:;;;+++****####################################
,;+*************+**************+*+++++++++***++++*******##**####**************######################################***########################################
*,.+********************************#*++++++++******##****######**************##########*######################################################################
++++;+**++++******************************+**+**++****####################******########*######################################################################
*+:+++**++++;+*+++++*************#******+********#****#######*************##########**##*######################################################################
+++;::,+:..:::;+;+++++********++++********************####**********##################**#######################################################################
+++++;:,..,.:::;++**+:,:**************#*********#####****#****************############**#######################################################################
****+++;*++++++:+*************++++++++++*+++*+**++++**************##############*****##*#######################################################################
*******++*********************************++***+****#######*****################****##*########################################################################
*******************+*************************+*#******************##########****#####*#########################################################################
********************+*************************##******##********############******#############################################################################
+++*****************#****#++****************###*****###*********########****####*##*###########################################################################
++++++;++*+*******************##**********####**###***#*********########*********#*############################################################################
***+++++++++****************************############**##********######**********#*#############################################################################
+++*****+++;;*++**********************###################*****########*******###*##############################################################################
****++*****+;:;+*****************#**##********######**##********######*******#*################################################################################
************+;:::*****++********************************************#########*#################################################################################
******+*******+;;:++**********##**************##################**######**#*###################################################################################
#******++++*****+;;;+++***********##******######****##########******###*#*#####################################################################################
####***#**+++*****+++;:+****************####****##############********#*#######################################################################################
######****#*;+++*****+++++;;;+++++**++**##**####**##########**##**##**#########################################################################################
#########*#*#+;+++**********++++++******##########**######**###*###############################################################################################
############***++++***####************##########*#######****##*#*##############################################################################################
################**++******#*+*********################**#***###################################################################################################
$####*****++**++;;;+:;::::;:;;;;;;;;;;;+++++++++++++++*******#########**########################################################################################
###**++++;;;;+;+++++;::::;+;;;;;;;;+;;+++++*****++++****################*######################################################################################
*+++++;;+++++++++++++;;:;;;+++++++++++++++****+*++++++****#####################################################################################################
++++;;+;;;++;;:+++++++;:+;;;+++++++++++++++++++++++++++*****###################################################################################################
++::,,,:+++;;+++;++++++;+++;;+;;;++++++++++++++++++++**********################################################################################################
;+,,,,::+++++*;+;;;+++++;++;;;;:;;++++++++++++++++++**********##**#############################################################################################
:,:;+:,++*+*+;;++*++***++;++;;;;;;;+++++++++++++++******************############*##############################################################################
++*++**+*+*+;++********++;;;;;++;;;;+++++++++*********************###############*#############################################################################
*+*****++;;+*********++;;;;;;:;;:::;;;++;;;;++++************##########******####*##############################################################################
*****+++;+***********+;;::;;;;;;:;;;;;;;;;++++++#***********##########*******######**##########################################################################
**+**::;+************+;;::::,:+;++;;;;;;++++++++**********############******#########*#########################################################################
********+************+:;:::::::;;+;;;;;;++++++************############**#############*#########################################################################
**************+*++****::::::::::;;;;;;;+++++++************######*#####################*########################################################################
********+**+**++*+***+++:::::;;;;;;;;;;;+++++++++*********######*##############################################################################################
******+**+;+++**+++****++::::;;;::;;;;;;+++++++++++++++***#########################################################*;+**#######################################
******+**,++**++++++**+++++;::;;;;;;;;+++++++++++++++++***#############################*########################..,,;;+++++####################################
*******+*+******+++**+++;;,++;;;;;;;;;;;++*++++***++******##############################*######################.,.,,;;+++++++##################################
******#*+*+**********++++++;++:;;;;;;;;;++*++**+**##**#**#**############################*#####################.,.,;:;;++++++;##################################
********+*******************++++;;;;;;;;+**++++++++*#####*****###########################*####################...:;;;;++++*+;##################################
**********************+*********+;;;;;+++*****+******+******#############***###################################.:;:;;;++***+###################################
********************+**********++;;+++++++****+*++******####*****************###################################,;+;+++***+####################################
+;:+***************************++++++++++++***++++********######**************#####################################*****#######################################
**..****************+*********#*****+**+++++++******####****######****##******##########*######################################################################
+**+;;****+++**********+**********************++++++***##***##############******########*######################################################################
+**+*+++**+++++*+++++**************#******************########**********############**##*######################################################################
+++;:,.:+;:.:::;+++++***********++++********************##**********########**########**#######################################################################
++*+++:,..,.,,:,:++++;::,:************************##**#***##********##****############**#######################################################################
****++++:+++++++;:+*************+**++++++**++++***++++**************############*****##*#######################################################################
********+;**********************************+***+*****######******##############**####*########################################################################
************++****#+*+****************************#***************##########******###*#########################################################################
+***************************#**#**************####******#*******############******#############################################################################
++++****************+*#*****+*************#***##******##******##########******##*##*###########################################################################
**++++++*+*+#********************#****#*****####***#**##********########*********#*############################################################################
*****++++++*+*****************************##############********########********#*#############################################################################
++++**++*+++;;+++*********************######**############****########*******###*##############################################################################
+***++******+;:+**********************##**##**######****##********######*******################################################################################
*************+;;;:++**#*+#************#*****************************#########*#################################################################################
+*********+****+;::;++***#******##****##******##################**######**#*###################################################################################
#*******+++******+;;;+++******##****##****########****##########****###*#*#####################################################################################
##********+*;+****+*;;;;++**************######****############********#*#######################################################################################
######**#***++*++***+++++++;;;++++++**++########**##*#######**##**##**#########################################################################################
#########*****+:+++*********++++++++******################**###*###############################################################################################
############**#+++++****####************##################**##*#*##############################################################################################
################***++*******************###############*#***###################################################################################################
$####*****+***+;;+;;;;::::;;;;;;;;;;;;;;++++++*++++++++******#########**########################################################################################
##****++++;;;;+;+++++;:;:;;;;;;;;;+++;++++++*****+++****################*######################################################################################
*+;+++;;++++;+++++*+++;::;;;++;+++++++++++*******+++++*****####################################################################################################
+++;++++;;++;::;+++++++;;;;;+++++++++++++++++++*++++++++****###################################################################################################
++;,,,,:;+;++++++;+;+++;;;+;;+;;;;++++++++++++++++++++********#################################################################################################
:;;,::,::+++++#:;;;;+++++;++;;;::;;++++++++++++++++++*********##############*##*###############################################################################
+,,,++::+++**+;:+++**+*+++;+++;;;;;;++++++++++++++**************##****##########*##############################################################################
,;++++**+*+*+;++********+++;;+;++;;;++++++++++****++**************###############*#############################################################################
*********++;+********+++;:;;+;:;;;;;;;++++;;+++++*+*#*******############****####*##############################################################################
**+****++;+***********+;;::;;;;;;;;;;;;;;;;++++++***********############******#####**##########################################################################
**++*+;:;+***********++;::::::;;+++;;;;;;++++++++***********############****#########*#########################################################################
********++*********+**+;;::::::::+;;++;;;+++++*************###########**#############*#########################################################################
******************+***+::::::::::;;;;;;;;+++++++***********###########################*########################################################################
*********+**+***+++***+++;::::;;;;;;;;;;++++++++++****++**#####################################################################################################
***********++++**+++****+;:;::;;;;::;;;;++++++++++++++++*#########################################################**:;+*#######################################
*******#+*;;++++**+++***++:+;::;;;;;;;;+++++++++++++++++****###########################*########################. ,,:;+++*++###################################
**+*******++*******++*++++;:++;;;;;;;;;;;+++*++*****+*****##############################*###################### ,.,,:;;+++*+:##################################
*********+*+**********+*++++;+;;;;;;;;;;;++++*+**+**##******######*#####################*#####################...,,;:;+++++*+*#################################
********++**********+********+++;;;;;;;;++***+*+++++*#######**###########################*####################. .,;;;;++++**+*#################################
****************+*****************;;;;;;++**********+++*******############**##################################*.:;;;;+++****+##################################
***********************#*********+;;++++++******+++*****########**************##################################.;++;+++***####################################
+++,+****************************+++++++++++****+++******#****###*##**##******#####################################*****#######################################
+**..+**************************#*******++++++++******####**########**######****########*######################################################################
*+***;+*****++************************##******++********##################******########*######################################################################
+++*;+****+*+++++*++++********************++************######**************#########**#*######################################################################
*+++:,.,+;++.,;;;+++++************++++****************+*##**********########**########**#######################################################################
*++++++:,...,,,,,:;+++;::,:+***********************###****###***********##**##########**#######################################################################
*****+++*;:;+++++;::+***********+++**+*+++**+++++*****+***###*******##############***##*#######################################################################
**********;+*+**+*****************************+*******#######*****##############**##*#*########################################################################
*******++**+********+*+***************************##************############******###*#########################################################################
+*****************************#***#***********######**********##############******#############################################################################
+++++*********#***********#***+***********************##*#****############****##*#**###########################################################################
**++++*+#*************************#*********######**##**#*****##########*********#*############################################################################
*++*+*++++++++************##**##******##**################****##########********#*#############################################################################
+++++**+**++++;+++**********************###################*****########*****###*##############################################################################
++****+******+;:++************##**##**######****######**####******########**#**################################################################################
***************+:::++*****+***************************######********#########*#################################################################################
+*******+*******+;;:+++***#*******##**##******##################****####**#*###################################################################################
********++++******+;;;;+******#*#****#****########****##########****###*#*#####################################################################################
###*****#**+*;*******++;;+**************########**##############******#*#######################################################################################
######*******++*++****++++++;;;++++++***+*########**########******##**#########################################################################################
#########*****+;:++***********+++++++*****#####################*###############################################################################################
############****+++++***####**************################**##*#*##############################################################################################
###############****+++********+*********###############*#***###################################################################################################
$####*****+**++++;+;+:::;;;;;;;;;+;;;;;+++++++++++*++++********#######**########################################################################################
##*+***+++;;;;;;++++;;,:;;:;;;;;;;;;;+++++++******+++****###############*######################################################################################
*++++++;;+;++;++++++++;;::;;+++++++++++++++*****+*+++++****####################################################################################################
*+;+++++;;;++;;:++++++++;;;;+++++++++++++++++++*+++++++++*****#################################################################################################
+++:,,,,;;++;;++++++++++;;++;;++;;;++++++++++++++++++++*******#################################################################################################
,++:,:,,::++++++;;;;;++++++++;;;:;;;++++++++++++++++++*********###**########*##*###############################################################################
:+.,:++:;++++*++:;+++*+*++;;+++;;;;+;++++++++++++++***********##################*##############################################################################
,::++++++*++*+;+++++****+++;;+++++;;;++++++++++***************##***##############*#############################################################################
**+******+++;+*******#+++;;;++;;;+:;;;++;;++++++++***#*******###########******#################################################################################
***+****++:+**********+;+;::;;;;;;;;;;;;;;+++++++***********############******#####**##########################################################################
***+++*+,:+***********+;+;::::::;;++;;;;++++++++++**********############****#########*#########################################################################
***********************;;;::::::::+++;++;;++++++************#########################*#########################################################################
*******************+***+;:::::;:::;;;;;;++++++++************##########################*########################################################################
***********+++++********++:::::;;;;;;;;;;+++++++++******+***###########################*#######################################################################
*********+**+:++**+++*****;:::::;;;;;;;;++++++++++++++++++**###########################*###########################+,:++*######################################
**+******++*;+++++*+*+***++;+;::;;;;;;;;++++++++++++++++*****##########################*########################  ,,:;++*++;###################################
**********+++*******+++++++;:++;;;;;;;;;++;+++*+*+********##############################*###################### .,,:,:;+++++;##################################
**********++++***********++++;++:;;;;;;;;;++***++*+*#*##**##############################*#####################, ,,,;:;+++++++:#################################
**********++*****************+++++;;;;;;;+++++**++*+++**#################################*####################,..,;;;;;+++**+;#################################
*****************+*******+*********+;;;;+++*#***#****+********#############***#################################.,;;;;++++***+##################################
***********************************+;;++++++******+++*+*########****##******##**##############################*#,;++;+++**#*###################################
***+;+****************************+++++++++++****+**####*##***############******###################################+++***######################################
+***:.+**********+****************#*******++++++********####**######****######**########*######################################################################
+++*++:+******++********#*********************+*++++*****#################******########*######################################################################
+*+++*+**+******++*+++;+*************##**#**************########************#########**#*######################################################################
+**+*;,,;+;++,:;;+;*+++*************+++***********#*******##**********####******######**#######################################################################
**++++++::,..,,,,:,:++++;,:::+********************#*####****##**************##########**#######################################################################
+*****++++;,:;;;++;::;************++*****+++**++***#**+***##********##############***##*#######################################################################
**********++++*+**+*************************************######****##############**##*#*########################################################################
********++**+********++***********************##****##************############****###*#########################################################################
:*********+*******************###*****************####****#*****############******#############################################################################
+++++++************************+********#*****#*####**####****############*******#**###########################################################################
+***++++****#*#*********************#***##****##*###**##******##########*********#*############################################################################
**++***+++++++*+************************##**##############****##########********#*#############################################################################
+++++***++++++++++++********************####################****########******##*##############################################################################
++;+**********++;;+*********##******##**######**############********######**##*################################################################################
+***********++**+:::+******+**********##**********##**##########******#######*#################################################################################
+*************+**+;;;;+++*********##########**##################****####**#*###################################################################################
*#+*******++*******+;;;;+++***********##****########**##########****###***#####################################################################################
###*******#*++;+******+++;++************##########**############******#*#######################################################################################
######********++++*****+++++++++++++++**++####################****##**#########################################################################################
#########******+;;++******##***+++++++**##**###################*###############################################################################################
############***#+*;++***####**************################**##*#*##############################################################################################
###############***++++******##************#############*#***###################################################################################################
$####****+*+*+**+++:+:;:;;;;;;;+;;;;;;;++++++++*++*++++****##**#######**########################################################################################
#*****+++*++;;;;++++++::;;;;;+;;;;;;+++++++++*****+++*****##############*######################################################################################
+++++++;;;;+;+++++++++++:;:;;+++++++++++++++*******+++++****###################################################################################################
#++;+;++;;;;+;;;;+++;+++;;;+;;;+++++++++++++++**+*+++++++*****#################################################################################################
;+;+:,,,:;+++;+;++++;+++;;;++;++;;;;++++++++++++++++++++******#################################################################################################
:;++.:,,::;;++++*;+;:;++;+;+++;;;:;;;++++++++++++++++++*******####**###########*###############################################################################
 +,.,:+:,;++++++;:+++**+*+++;+++;;;;++++++++++++++++**********######**##########*##############################################################################
:,;:+++++*+++*;++++*++***++;;+++++;;+;++++++++++****************##**#############*#############################################################################
***+*****+*++++********+++;;;;+;:;;;;;;;++++++++++++**********##########******#################################################################################
****+****++;++*********+;;;::;;;+;;;;;;;;;;;;+++++***********###########******#####**##########################################################################
****+++*+:++******++**++;+::::::;;++++;;;;;+++++++***********############***#########*#########################################################################
**********+***+******+**;;;;::::::;;;+;;;;;+++++************#########################*#########################################################################
*********************+**;:::::::;::;+;;;++++++++++**********##########################*########################################################################
************+*++*********+;;::::;;;;;;;;++++++++++++*********##########################*#######################################################################
*********++***:*+***++*****;;:::;;;;;;;;;;+++++++++++++++++*###########################*###########################:,:+++*#####################################
**********;++;++++***+++***+:+:::;;;;;++;+++++++++++++++**+***#########################*########################  ,::;;+***;###################################
****+******+:+**********++++::++;;;;;;;;++++++**++++********############################*#####################*..,,:::;++++++;#################################
***********+++**********++++++;++:;;;;;;+++;++***+**+###******##########################*#####################:.,.::;;;++++++;#################################
*******+***+******************++**+;;;;;;;++*****++++++*#################################*####################...,:;;;;+++**+:#################################
***********+******++****************+;;;;+++****#*****+*******##############**################################* .;+;;;+++***+*#################################
**************************#*********;;;+++++*******++++**########***####********################################.;;+++++****###################################
****++************++****************++++++++++********##**##**############**##**##################################*++++**######################################
****+;.+**********+***********************++++++********####****######****####***#######*######################################################################
++++**+.+******++*************************#*****++++******################********######*######################################################################
*******:******+#+*++*++++***************************#*****######**************#######**#*######################################################################
+***+*;.:+++*+;,;+++*+++++***********+++***************+**##************##******######**#######################################################################
+**+++++;,:,.,,,:,,,:;*++;:::;+***********************##*****#************###########***#######################################################################
++*****+++++,,;;;++;::++***##*****+*****+++++*******#***+***##******##############***##*#######################################################################
************++**+****+**********************************######****##############**##*#*########################################################################
+**********************+*++#************************####********##############****###*#########################################################################
+;************************##****************#*****##************############******##*##*#######################################################################
+;+;+++********************+**********************##****###***##############*****##############################################################################
****++;:+***************************##****##**##########******############*******#*############################################################################
+*+++++*+++++++*+*#***************##****##**################**############******#*#############################################################################
*++++****++++++++++***************##******###################*****########****##*##############################################################################
*++;+*********+*+;;+**********##**##**##**####################******######**##*################################################################################
*****************+;;:+****#*******##****************############******#######*#################################################################################
++*****************+;;;+++**********########****##################**####**#*###################################################################################
#*+***********+****#+;;;;+++******##**####**######################**###*#*#####################################################################################
###*********#*+;******++++;+************#*########**############********#######################################################################################
######*********++++*****+++;++++++++++++****##################****##**#########################################################################################
########*#*****#+;+++***********+++++++*##**###################*###############################################################################################
############****#++;++****####**********##################**##*#*##############################################################################################
###############****++++*******************############*##***###################################################################################################
$####+*****++*+*++;;;+;::;;;;;;++;;;;;;;+++++++**+++++++***##**#######**########################################################################################
##*++**++*++;;;;;+++++;:;;;;;;;;;;;;;;++++++++*****+++**################*######################################################################################
*+++++*+;;++++;++++++++++:;:;+++++++++++++++********++++****###################################################################################################
*++:++++;+;;;++;;;+++;+++;;;;;++++++++++++++++*****+++++++****#################################################################################################
:+;;:,:,:;+++++;;++++++++;;;++;+++;;;+++++++++++++++++++******#################################################################################################
::++:,,,,:,;;;+++++++;;++++;+++;+;:;;++++++++++++++++++*******#################*###############################################################################
..+,.,:+,:+;+++*;+;;+++*+*++;;+++;;;;++++++++++++++++**********#################*##############################################################################
+:::;+++++***+++++++++***++++;++++++;;;++++++++++***************#################*#############################################################################
+***+*****+++*++********+++;;;++;;;;;;;;;++++++++++++*********############****#################################################################################
*****+****++:++********+++;:::;;;+;;;;;;;;;;+++++++***********############*****####**##########################################################################
*****+++++::+*********#*;;;;::::;;;+++;;;;++++++++************############****#######*#########################################################################
**********+++***********+;+;;::::::;;++++++++++++************########################*#########################################################################
**********************+**+;:::::;;:;;;;;;+++++++*+************########################*########################################################################
*************+**+****+****++::::;;;;;;;;++++++++++++++********#########################*#######################################################################
***********+***+++***++***++:;::::;;;;;;;;;+++++++++++++++++*##########################*###########################.,:+++*#####################################
***********+***+++++**++****+;+;;;;;;;;;;+++++++++++++++++****#########################*########################  ,::;;++*++*##################################
*****++****+++*+********+++++;:++;++;;;;;;++++++**+++*****+*############################*######################  ,,:::;;+++++:#################################
************+*++**********+*+++;++;;;;;;;;++++***+*****###**############################*#####################;.,,::;;;+++++*+#################################
******+******+**********+*****+*+**+;;;;;;;++*****++++++**##**###########################*####################...,:;;;;+++***+#################################
*******************+*****************++;;;+++*+****#************#############***##############################* .:+;;;++++***+#################################
*************************************+;;;++++*******++++**########**######****##################################.:;+++++*****##################################
++***++******************************++++++++++*******########**##################################################*++++***#####################################
*****+; +*******************+*******#*******++++******##**##############**######**######*######################################################################
++****++:,******++********#*#*****************###*++++****################********######*######################################################################
*+******;;*****+**#*+*++++******************#*****##******#######***************####*###*######################################################################
+#+*+++;,;+++*++::+++;+++*************++++*******###****++*#**##********##********####**#######################################################################
++++++++;:.:,,,,,,,,:,:+*+;;:;;+******************##**********##********##**##########**#######################################################################
++*******+++;;,,;;;;;:::+**#********+*****+*++***+****#*****####****##############***#*########################################################################
************+*+*++***+************************************######****############**##*#*########################################################################
************+**+******+*++**************************#*####******##############****###*#########################################################################
**+****************#************##****************######********############******##*##########################################################################
+:,;++**#+*******************+**#***************#***########****############*****##############################################################################
**+**+++,+****#*#*********************##**####**##########******##########*******#*############################################################################
+***++**++++++++*+****************####****##**###############***##########******#*#############################################################################
***+*****+++++++++*+**************######****##################**##**######****##*##############################################################################
++++++++********++;;*+********##**####****####################******##########*################################################################################
++********++******+;;:++****#*+#****######********################****#######*#################################################################################
+++***+*********+**++;;:+*+***********######**####################**####**#*###################################################################################
##++****+************+;;;;++******#*##****##**####################**###*#*#####################################################################################
###*+*******+**+++**+***++++++************######################********#######################################################################################
######**#*****#+++++*****++++++++++++++++***##################****##**#########################################################################################
########*********+;+++**#***##***+++++++**##**#################*###############################################################################################
############*******++++***######************##############**##*#*##############################################################################################
###############*****++++******************#############*#***###################################################################################################
$####*******+*++*;;;;+:+:;;+;;;;;;;++;;;++++++++***+++++***##**#######**########################################################################################
##*++**++++++;;+;;+++++;:;;;;;+;;;;;;;++++++++******++****##############*######################################################################################
*;++++++++;;++++++++++++;;;;:;+++++++++++++++*******+++++***###################################################################################################
+*;+;+++++:;;+++;;++++++++;;;;;+;+++++++++++++++***+++++++****#################################################################################################
++;:,;::,:;++++++;++++++++;+;+;++++;+++++++++++++++++++++*****#################################################################################################
:;+++,,,:,::+;+++++++;;;+++;+++++;;;;;++++++++++++++++++******#################*###############################################################################
..;;,.,:;::;:++++;;;;+++*+++;;++++;;+;++++++++++++++++**********################*##############################################################################
+:,:::+++;++**+*+++++++++*+++;+++++;;;++++++++++++**************#################*#############################################################################
++***+++***+++++++******#+++;;;++;;;;;;;;;++++++++++++*********###########****#################################################################################
+***+******++;++*******#+++;;:;;;++;;;;;;;++++++++++***********###########******###**##########################################################################
******+*++++:+***********;++;;::::;;++++;;++++++++************############****#######*#########################################################################
*****************+******++;+;;;;::::;;;+++++++++++************#######################*#########################################################################
************+*************;;:::::;:;;;++;;;+++++++++**********########################*########################################################################
****************#+**********;;:::;;;;;;;;+++++++++++++**********#######################*#######################################################################
***********+++**;+++**++*****;;;:::;;;;;;;+++++++++++++++++++*#########################*##########################+ ,:++++*####################################
************++**+++++***++**+++*;;;;;;;;++;++++++++++++++++***#########################*########################  .,:;;+++*+;##################################
*************::*+**********+++;:+++;;;;;+++++++++*********+**###########################*######################. :,::;:;+++++;#################################
***************++***********+*++:++;;;;;;;++++++******+*###*############################*###################*#:..,,:;;;;++++++;################################
*********+****+*********#*******++**++;;;;;;+++*******+++***#############################*####################...,:;;;;+++***+;################################
*****************************+********+++;;+++;*#***************##############**##############################* .:++;;++++***+#################################
********************+********#********++;+++++******++++**##########**##########**############################## :++++++*****##################################
++*****+**********+********************+++++++++********#######**##################################################+++++**#####################################
+****++;::****************************#*****++++*******###**####**##############****####*######################################################################
****++*++:.+******++**********************####**##*+++******################******######*######################################################################
++******++.**+**++****++++*+************************##**+***######**#*************##*###*######################################################################
***+**+*+;:+++**++:;++;++++**+**********++++********##******##**####******##******####**#######################################################################
*+++*++++;,,:::,:,,:,,:,;+*+;;;;++**********************####**************############**#######################################################################
**++******++;++:,:;::;::;;************++*****+++**************##****################*##*#######################################################################
*************+*+***+***++*********************************######**##############*****#*########################################################################
************************+*++****#**********************#####******##############****#*#########################################################################
+***************************#*****###*********##****########****##############****##*##########################################################################
+:;::++***+*****************#*+*#*****##**********#*#########***##############****#############################################################################
*****++++++*************#*********##****#***################****############*****#*############################################################################
*+**++***+++++++*+*+******##**##########****##**##############**##########******#*#############################################################################
***+++*****+++++*+++****************####****####################******######**##*##############################################################################
**+++++++*******+++;;+++********##**######**####################******########*################################################################################
;*+*+***************;:;;**********##**######******################****#######*#################################################################################
*;++*****************+;;;+*++#******#*############################****##**#*###################################################################################
#**++****+************+;;;;++*+#****####**########################**###*#*#####################################################################################
###*+***+*******++*******++;;++*************######################******#######################################################################################
######**********+++++*****++++++++++++++++****################****##**#########################################################################################
#########*********++*++***********+++++++*####################**###############################################################################################
############******+*;+++**######************##############**##*#*##############################################################################################
################**+*+++++**********+********##########*##***###################################################################################################
$####********+++*;;;;+++;;;;;;;;+++++;;;;++++++++*****+****##**#######**########################################################################################
##*++****+*+++;;;;++++++::;;;;;++;;;;;;++++++++*#***+++****############**######################################################################################
+;;++*++++;;;+++++++++++;+;;;;;+++++++++++++++*#*****++++****##################################################################################################
+*++:+++;;+;;;++;;;+++++*+;;;;;;++++++++++++++++****+++++++***#################################################################################################
+;;;;;:,::;+++*++++++++++++;++++++++;;++++++++++++++++++++****#################################################################################################
;;++++,:,,:::;+++++++++;++++;+++;;+;;;;+++++++++++++++++*******################*###############################################################################
...+:,.,;:::;:+*++++;;++++++++++++++;;;++++++++++++++++**********###############*##############################################################################
,+,,,;++++;*+*+*#+++++++++*+++++++++;+;+++++++++++***************################*#############################################################################
++++**++****++**++********+++;;;++;;;;;;;;;++++++++++*+********###########******###############################################################################
*+**********++;++********+++;;;;:;;+;;;;;;+++++++++++**********#############****###**##########################################################################
******+++++++;+***********++;;;;::;;;+++++;;++++++************############****#######*#########################################################################
*************+**********#*+;;;;;;;;;;;;+++++++++++************#######################*#########################################################################
*************************++;;;::;;;;+;;;;;;+++++++**+**********#######################*########################################################################
******************++****+****+;::;;;;;;;;;++++++++++++++********#######################*#######################################################################
*************+;**++++***++***+;;::;;;;;;;;;;++++++++++++++++****#######################*##########################,..:;++++*###################################
****************++++++**++++*#+;*;;;;;;;++++++++++++++++++++#***#######################*########################  .:;;;++++*+*#################################
***************++++**********++;:+++++;;++++++++++*******#*++*##########################*######################..,:::::;++++++:################################
****************++***********+*++;+++;;;;;+++++++*********###*##########################*####################*:...,::;++++++*+:################################
********+*+*********************+*++*+++;;;;++++********++**#############################*####################  .,,:;;;++++**+:################################
***************************************+++;;++;+******#***********############**###############################..,;++;++++***+#################################
*******************************#*******++++++++***##**++**####################**################################ ,+++++++***+##################################
++***+**********************************++++++++**********######**##############################################*#+;++++**#####################################
;*+*****;::+****************************#*****++********#########*################**####*######################################################################
+*****++++,,******#*+*******##********************#*++******#########*######********####*######################################################################
*+#+******+:***+***+#**++++*************##**#**#****####****##########************##*###*######################################################################
**+++**++++:+++*++++;+++++++****************+*******####******########************####**#######################################################################
***++++++++;+:;,;;:,,:,,::;+++;+;+++********#*************#*##*#**##************######**#######################################################################
***++******+++++:,,::::;::;+*******************+**************####****##############*##*#######################################################################
***************+*+******+++*******************************######################*****#*########################################################################
+**+*********************+*++*****#***##************####*#####****##############**###*#########################################################################
+:+***********************###*###***##**************##########**##############****#############################################################################
*+:;+:++***+****************#*#*+*#***####************########**##############******###########################################################################
++****++++*+************************##****##**###############***############*****#*############################################################################
++********++++*+++**********##**####**####**####**#############*############****#*#############################################################################
**+*++******+++++++++++*#***********########**##################******######*###*##############################################################################
****++++++*********++;+*+***####**##############################******#######**################################################################################
++*++*******+*******++;;++*******+##**########****##################****#####*#################################################################################
*+;+****************+*++;;;+++**+*##****############################**##****###################################################################################
#*#++*#+****************;;;;++****##**############################**###*#*#####################################################################################
##**********#*++*+******+*++++++******##****######################******#######################################################################################
######**********+++++**#****+++++++++++++++***################****##**#########################################################################################
#########*+********+++++******##***+++++++**##################**###############################################################################################
############********+;+++***######********####################*#*##############################################################################################
#################*+**++++*******###*********##########*##***###################################################################################################
$#####*****+*+*+*+;++;+;+:;;;;;;;++++++;;;+++++++****+*******#########**########################################################################################
##*+++**+++*++;;;;;+++++;::;;;;;+;;;;;++++++++++*****+****#############**######################################################################################
*;:*+++++++;+;+++++++++++;;:;;;++++++++++++++++*******++++****#################################################################################################
;+*;+;+++;++;+;+;++;++*++++;;;+++++++++++++++++++****+++++****#################################################################################################
+++:+;::,:;;+++++;+++++++;+;+++++++++;++++++++++++++++++++******###############################################################################################
+;++++:,,,::,:;;++++++;+;;++;;+++;++;;;;+++++++++++++++++*******######**#######*###############################################################################
....+:,,:;;::;:+**+++;++*++*++;;++++;;;;++++++++++++++********##*###############*##############################################################################
.,:::,:;++;:++++**++++++++**++;;++++++++++++++++++++**************###############*#############################################################################
++++++*+++**+*++++++*******+++;;;++++;;;;;;;+++++++++++*********############****###*###########################################################################
**+***+******+++++********+;+;;;;;;+++;;;;;;+++++++++***********############****###**##########################################################################
********+**+++;+**********+;+;;;;;:;;;++++++++++++++***********#############**#######*#########################################################################
*************+++***********;;+;;;;;;;;;;;+++++++++++***********######################*#########################################################################
**************************++;;;;;;;;;;;+++++++++++++*+*********#######################*########################################################################
********************+*********;;;;;;;;;;;;;++++++++++++++*******#######################*#######################################################################
**************++***+++*********;;;:;;;;;;;;;++++++++++++++**++**#######################*########################## .,:;+++++###################################
**************+***+:++++**++**++++;;;;;;;;++++++++++++++**+++***#######################*########################. .,;;;++++++;#################################
****************+,*+**********++;;++;+;;++++++++++*****++*****##########################*######################..,+:;;;:++++*+:################################
******************+***********+*++;++;;;;;;;+++++++*********#*##########################*#####################,,.,,:;;+;+++++++################################
**********+*****+**************#***+**+++;;;;+++++************###########################*#################### .,,,:++;++++**+;################################
******+*********************************++++;;;:**********#*******############################################# .,;++;++++***++################################
***********************+****************++++++++****#*+++*###################################################### ,;++++++****##################################
******+**********************************+++++++++*****+**######################################################*#+;++++***####################################
;+*++**+++,:+*********************************++++********########**##############**####*######################################################################
+*****+****..+***********#*****##***************#*##**++*****#########**########****####*######################################################################
*++++*****#++*+++***+***++*+**************##*###******####****######**##*************###*######################################################################
*****+**+*++:+*++*#+++++++++++**************+++*******####******######**************##**#######################################################################
+**+*+++++++;;,:;,++:,::::::+*+++++++*******************####****####**************####**#######################################################################
++**++***+**++++;;,,:::,:;:;++********************+*******#*****######**############*##*#######################################################################
+****++**********++***+**++;*#************************#*****####################*****#*########################################################################
***++**************+*******+*++*********##************##########**##############**###*#########################################################################
*+;+++#*******************************##**************########***#############****##*##########################################################################
;+;+++;+****+***************###*#+**#***####***********#**######################***############################################################################
+;****+++++++***************##********##****##**##############**############*****#*############################################################################
+++*******++++*++++***********##**##**######**##################**##########****#*#############################################################################
***++++++****++++++++++***#*******##**######**##################********########*##############################################################################
+****+++++++****++**++;;*++***##**##########**##################********#####**################################################################################
*+*+++++****++********+;;;+*********############***#################********#*#################################################################################
**;;+******************+;;;;+*++*+**##**############################**##**#####################################################################################
#*#+++**+****************+;;;;+*#+##**#################################*#*#####################################################################################
###**++********++++********++++++*****##**##**####################****#*#######################################################################################
######**+*********;+++*******+++++++++++++++****################**##**#########################################################################################
#########*********#*;+*++*****##****+++++++***################**###############################################################################################
############*+********;+++***#######**********################*#*##############################################################################################
#################*****+++++*****####*+****##**###########***###################################################################################################
$####*********+*+++;;:;++;;;;;;;;;+;;++;;++++++++****++++****##**#####**########################################################################################
##*+;#+**+++**;;;+;++++++::;;;;;++;;;;;;++++++++******++****############*######################################################################################
*+:+++*+*+++;;+++++++++*+++;;;;;++++++++++++++++******++++****#################################################################################################
;++++;++++;+;+++++++;++*++++;;;;;+++++++++++++++++****++++****#############*###################################################################################
+++;;+:;::;;++++++;++++++++;;;++;+++++;++++++++++++++++++++*****###############################################################################################
++;+*++,:,,::::++++++++++++++;++++++;;;;;+++++++++++++++********###############*###############################################################################
....:+:,,:;::::;***+++;;+++*+++++++++;;;;+++++++**++++********##################*##############################################################################
,.:,;,::;+++;;+*+**+++++++**++++++++++;++++++++++++++***********#################*#############################################################################
*+++;++*++*****+**+++*****#+++;;++++++;;;;;;++++++++++++*********###########****###############################################################################
***+**********+++++***#****+++;;;;;;+++;;+++++++++++++****##****############****###**##########################################################################
************+++;+**********+;+;;;;;;;;;+++++++++++++************############**#######*#########################################################################
************+*+++***********;;;;;;;;;;;;;;++++++++++***********######################*#########################################################################
**************************+++;;;;;;;;;;;++++++++++++************######################*########################################################################
********************#+*********;;;;;;;;;;;;;++++++++**++++********#####################*#######################################################################
******************+*++****++***+;;;;;;;;;+;;++++++++++++++++******#####################*########################## .,,;+++++###################################
*****************+*+,*++****++**+++;;;;;;;++++++++++++++****++*#*######################*########################. ,,:+;++++*++#################################
****************++.+++********+*+:;+++++++;++++++++++***+*******########################*#####################*...;;;;;;;+++*+;################################
*******************+*************++;++++;;;;++++++++**+*****############################*#####################:.,,,:;;++++++*+++###############################
******************+***************+*+**+++;;;++++++***********##################**#######*####################...,:;;+;+++++**+*###############################
****************************************++++++;:+**************#################**############################* .,;+++++++****+################################
*****************************************++++++++***##*+++*#####################################################.:;+++++++***+#################################
++*****+***********************************+++++++****+++**#######################################################;;+++++**####################################
++++*****+*.:+********#***********+*************++********###########*############**####*######################################################################
**++********..******************#***##************###***++****########**########**######*######################################################################
*+++++*******+++++********+***************************#####***######*****************###*######################################################################
#****+****+**;+++***++++++++++****************++**##****####****######**************##**#######################################################################
*+**+*++*++++++:::,++;,::::::+**++++++************###***###*#***####************######**#######################################################################
*++**++***++*+*+++;:,,,:,:;:;++*****#*****+*****+*****#****#****####################*##*#######################################################################
*+****++********+++++***+++*++*******************************#######################*#*########################################################################
*****+**************++********++**********##******##**##########**##############**###*#########################################################################
***++****************************##***####********##**##########**##############**##*##########################################################################
++;;++++******************************#+**##************########################**#############################################################################
++;*++++++**++*+******************##**######**##################**##########*****#*############################################################################
*++*********++++++*+************############****################**##########****#*#############################################################################
***+++***+*****+++++++++***#**##**##**########**#################*******########*##############################################################################
;***+*++++++****++**+++;;+*+****##################################******#####**################################################################################
+;+*++*++*****+********++;;+******#**###**##########################********#*#################################################################################
**+;+*******************++;;;+*++*+**###**##########################******#####################################################################################
#***;*********************++;;++**+###**#################################*#####################################################################################
###**+++********++++********++++++****##******####################******#######################################################################################
######**+*******#*+;*++*******+++++++++++++++***################**##**#########################################################################################
#########**+******#**;+**+******##***+++++++**################**###############################################################################################
############*+******+*+;+++***######********##################*#*##############################################################################################
################*#+***++++++******###*******#############***###################################################################################################
$####********#+++++;;+;+;;;;;;;;;++++++;;++++++++***#++*+****##**#####**########################################################################################
##*+:*+***++**++;;;;++++++::;;;;;++;;;;;+++++++++***********############*######################################################################################
*+,;++++++*+;;;++++++++++++;;;;;++++++++++++++++********++****#################################################################################################
,;*+;+++++;++++;*;+++;+*++++;+;;;;+++++++++++++++******+++*****################################################################################################
*+++;++:::;;+++++++;;+++++++;;++;++++++++++++++++++++++++++*****###############################################################################################
++;++++;:,,,:::;++++++++++++++;++++++++;;+++++++++++++++******#################*###############################################################################
:....;;::,::::;:+****++;;++*++++++++++;;;;++++++++++**********##################*##############################################################################
.,..+;::;;++;::+*+**++++++++*+++++++++++++++++++++*+*+**********############**###*#############################################################################
+++++;++*+++****+**+++****##+++;;;+++++;++;;+++++++++++++********###########****##**###########################################################################
**+*+***+******+++;+*******#+;+;;;;;;+++;;;++++++++++++***##****#############***###**##########################################################################
************+++++++*********+;+;;;;;;;;;+++++++++++++***********############**#######*#########################################################################
**********+**++++***********+;++;;;;;;;;;;;++++++++++***********#####################*#########################################################################
****************************+;;+;;;;;;;;;;+++++++++++***+*******######################*########################################################################
**********************+*****+**+;;;;;;+;;;;;++++++++++**+++*******#####################*#######################################################################
******************++**+*****+***+;;;;;;;;;;;++++++++++++**+++*****#####################*#########################+. ,:;+++++###################################
+***************+***+*;+++*******;++;;;;;;;+++++++++++++**********#####################*#######################+:.::;;;+++++++#################################
******************++:++**********+:;++++;;++++++++++********#***########################*#####################+ ,,;+;;;;;+++++;+###############################
************+*******++**********++++;++++;;;;++++++++*********#*########################*#####################,,.,,:;;;+++++*++:###############################
*************************************+**++++++++++++************#################**######*####################..,,,:;+++++++**+;###############################
******************************************+++++:;+**************################**############################+..,:;++;++++***+*###############################
******************************************++++++++******++**####################################################.,;+++++++***+#################################
:+******+***********************************+++++++*****++*#######################################################;++++++***###################################
+++++*+***+*:,++******##************************+++*******##############################*######################################################################
+*+++***+****.,;**********************##**********####********##########**##############*######################################################################
***++**+*******++;+***+*****+***#***************####****####***#######****************##*######################################################################
+****++***+++*++**+****+++++++++********************##**####****########************###*#######################################################################
**+**++++**++*+;:,,:++;::::::;;+**++++**************##**####*#**######**********######**#######################################################################
******++***+***++++;:,,,:::;;;++**#**#**********************##**####################*##*#######################################################################
**+****++*******+*+*++**++++*+;*************##****************######**##############*#*########################################################################
++**#++**************++*********++******##**##******##############**############**###*#########################################################################
+***++*+***************************##***###*******####**########**##############**##*##########################################################################
+:,+;+++;*************************#*+*##**######********#########################**############################################################################
+++;**++++++*++*******************####**######**##############################***#*############################################################################
**++****+***++++*****+**********##############**############################****#*#############################################################################
****+++***+*****++++++++++**#*****##############**################********######*##############################################################################
;+***+*+++++++***+**+++++;+*++**##################################******######*################################################################################
*++**+**+;+*************++;;++****###*##############################********#*#################################################################################
**++++********************+;+;++***#**##############################******#####################################################################################
#***++**********************++;;+*****##**###############################*#####################################################################################
##****+++*******++++*******#*+++++******######**###################***#*#######################################################################################
######************#*;*++********+++++++++++++++*################**##**#########################################################################################
#########***+********+;+**+************+++++****##############**###############################################################################################
############********+#++++++****######********################*#*##############################################################################################
###################****+++++******####******#############***###################################################################################################
$####************+*;;++:+++;;;;;;++++++++++++++++++**++******##**#####**########################################################################################
##*+:+*****++*++;;;;++++++:;;;;;;;++;;;;;;++++++++***********###########*######################################################################################
*+::+++++++++;+;++++++++++++:;;;;++++++++++++++++*******++****#################################################################################################
,:++++;++++;+++;;+;++++++*+++;;;;++++++++++++++++++*****+++*****###############################################################################################
+*++;+;+;::;++++++;;;;++++++;;++++++++++++++++++++++++++++++****###############################################################################################
++;;++++,:,,,:,:++++;++++;++;+;;++++++++;;++++++++++**++++****#################*###############################################################################
+:..,,++:,:;:::::+****+++;+++*++++++++++;;++++++++**++**********################*##############################################################################
.,...;;,,:;++;::+*+**++++++*+*+++++++++++++++++++++++++*********#################*#############################################################################
:;++++;++*+++***++***+++****#+++++;+++++;+++++++++++++++++********###########***##**###########################################################################
*****+***+******+++;++*******+++;;;;;;++++++++++++++++++*********#############**###**##########################################################################
**********+***++++++*********+++;;;;;;;;;+++++++++++++***********####################*#########################################################################
**************++++++*********+;;;;;;;;;;;;;;+++++++++++**********####################*#########################################################################
+*****************************;;;;;;;;;;;;+++++++++++++**********#####################*########################################################################
******************************+*+;;;;;;;;;;;++++++++++****++****#**####################*#############################*+*#######################################
********************+**++*******++;;;;;;;;;+++++++++++++**+++******####################*#########################,.,,:;++++++##################################
,+*****************+**+,++******+*;++;++;;;;;+++++++++++********+######################*#######################.:.,+;;++++++*++################################
+*****************#**;;+**********+:++;+++;;++++++++**********#**#######################*###################*#: ,,;+;;;+;;++*++:###############################
+*********************+**************++++++;;;++++++++**********########################*#####################,,.,,::;;++++++++:###############################
********************++**************+*+**+++++++++++++***********#################**#####*####################..,,::;;++++++**+:###############################
******************************************+++++;:+++****#*#*****##############################################,..,:++++;+++***+*###############################
************************************#******++++++++*****+++*#*#################################################+.,;+++++++***+#################################
+++******************************************+++++++****++**######################################################;;+++++***###################################
+;+++++++***++:;**********************************++**********##########################*######################################################################
+**+++*******++.:***********#*#***##****************###*****+**#########**##############*######################################################################
#++*++***+++*****+:+*****+********************#######***####******####****************#########################################################################
++****+++***+***++**+***++++++++**********************##**####****####**************###*#######################################################################
+**+**++#;**++*+::,:;:*++,:;::;;;+*+++++********##****##**######**####**********#######*#######################################################################
**+****+++**+++*+*++;:,,,,::;+;;++***+*******************#****######################*##*#######################################################################
********++*******+++++;+**++***++*******##****##********##****######**##############*#*########################################################################
+;+****+**************+++*********+*****#*****##****############################****#*#########################################################################
+++***+*******************#*******#***#***###*******############################*****##########################################################################
*+:;+++*+;************************##***##***####********#########################**############################################################################
*++++**++;++;*++*+********************##**####################################***#*############################################################################
***++*******++++++****+***********##**##########**################**######**##**#*#############################################################################
+****+++*********++++++++*+*******################################********######*##############################################################################
+;+***+*++++++****++****++;+**+***##################################******####*################################################################################
+*;+**++++++**************++;;+*********##############################*****##*#################################################################################
***+;+*********************+++;;+**+#***##############################****#####################################################################################
#***++++*********************+;;+++***####**###########################*#*#####################################################################################
##**+**+*************+********++++++******######**##################**#*#######################################################################################
######**+++**********+*+++******+++++++++++++++***##############**##**#########################################################################################
#########*************+++**+******##*****+++****###############*###############################################################################################
############**********#*+++++***######********################*#*##############################################################################################
###############*#*#*****++++++****#####*******########*##***###################################################################################################
$#####*+*****+#***++;;+:+;+;;;;;;;+;+++++++++++++++**#*******##**#####**########################################################################################
##*+:;*+**+*++#*+;++++++++;:;;;;;;++;;;;;;++++++++***********###########*######################################################################################
*+;,++++++++*+;;+++++++++++++;;;;;++++++++++++++++*************################################################################################################
:,:++;+;++++;+++;++;+++;+**++;++;;++++++++++++++++++*****++*****###############################################################################################
+++++++;++;:;++++++;;+;++++++;;;++;+++++++++++++++++++++++++****###############################################################################################
**;;;+++;::,,:::;;+++;+*+*;++;+;++++++++++;++++++++*++**++******###############*###############################################################################
++,..,:++:,:::::;;++***+++;++++++++++++++;++++++++**++**********################*##############################################################################
;,,...+;,::;++:::++***++;+++++*+++++++++++++++++++++++*+********#################*#############################################################################
;:++++::+++*++****+***++******+++;++++++++++++++++++++++++******##############**##**###########################################################################
**********+********+;++*******++;;;;;;;+++++++++++++++++********##############**###**##########################################################################
****+***********+*+++*********+++;;;;;;;;;+++++++++++++*********##############**#####*#########################################################################
************+***+++++*********+;+;;;;;+;;;;;;++++++++++*********#####################*#########################################################################
++*****************************+;;;;;;;;;;;+++++++++++++**********####################*########################################################################
+********************************+;;;;;;;;;;++++++++++++****+***##**###################*##########################*#*;;+**#####################################
;+********************+**+********;;;;;;;;;;++++++++++++************###################*######################### ..,;++++*++*#################################
:.+******************+**+*++*****+*;++++++;;++++++++++++**********#####################*####################### :::+++++++++++;################################
+;*******************;;,*+********++;;++++++++++++++**************######################*####################*,,,::++;;++;+++++,###############################
;***********************+************+++;++++;;+++++**+**********#######################*#####################,:.,,::;;+++++**++###############################
+************************+*************+**+++++++++++++***********################**#####*####################.,,,::;;++++++**+;###############################
****************+******+********************++++:++++********#*############################################### ..,:;+++++++****+###############################
+*************************************#*****++++++++*****++**#*################################################,.,;+++++++**#+*################################
.+++******************************************++++++*****+**#####################################################+;;+++++***###################################
,;;++*++++****++;+*****************************##*************##########################*######################################################################
*++*;*********#+,,+*****************###***##********####********##########**##**########*######################################################################
+*;**+****++++**#*+++***************************#######*+***##****######**************##*######################################################################
*++**+*+++******+++*****+*+++*++++***********###******##****####**######************###*#######################################################################
+*+*++****;+**+++;:,;:++++;,::;;;;+**+++++********##****##**##**##**##********#########*#######################################################################
#********++**++**++++;::,,::;:;+;+++***+******************#***######################*##*#######################################################################
**********+********+++*+:+++++**+++*****##****####********##**######################*#*########################################################################
**++********************++*********+**********##******############################**#*#########################################################################
;+*+********************************#*##**####********##**########################***##########################################################################
*+;;+++++*+**************************#**###***####********#######################**############################################################################
**+++++*;::;++*++++*******************##########**################**############*#*############################################################################
**+*++****+**++++;++****************###############################*######**#####*#############################################################################
;+**+*+++***++****+++++++**+******################**################******##**##*##############################################################################
+:+****+**++********++**++++++*++***################################******####*################################################################################
**+++***++++++*************++;;+******#***############################*****##*#################################################################################
****++****+*****************++;;;+*****+**############################***######################################################################################
*****+;++*********************++;+++****###############################*#*#####################################################################################
####+*#+++******+*++**********+*++++++****#######*##################**#*#######################################################################################
######***+*+**********+*++********++++++++++++++**##############**##**#########################################################################################
#########*****#*********+++**+************++**+**##############*###############################################################################################
############************++;+++****######******################*#*##############################################################################################
###############*#*#******+++++******####******###########***###################################################################################################
$#####*+*****+*#**++++;;;+;+;;;;;;;+++++++++++++++++***+*****##**#####**########################################################################################
##*+::**+***++#*++++;++++++:;;;;;;;+++++;;+++++++++***#*****############*######################################################################################
**;,++*+*+++**;;;++++++++++++:;;;;;+++++++++++++++*************################################################################################################
;.,*++;+++++;;+++++++++++++*++;+++;+++++++++++++++++************###############################################################################################
;++++*++;++;;;+++++++;;;++++++;;+++;++++++++++++++++**++**++****###############################################################################################
**+:;+;++:::,,:::;++;;;+++++++;+;+++++++++++++++++++++**********######**#######*###############################################################################
**+..,,;++,,;::::::++++*+++;;+++++++++++++;;++++++++************################*##############################################################################
+:.,...+;,,:;+++;;+*+*#*+;++++++++++++++++++++++++++**+*********#################*#############################################################################
*::;+++,:++**+++***+++**+++****++++++++++++++++++++++++++++*****##############**###############################################################################
++******************++++******++++;;;;+;+++++++++++++++++*********############**###**##########################################################################
******************+++++*******++++;;;;;;;;+++++++++++++++*********###################*#########################################################################
*************+***+;;++*********+;+;;++++;;;;;;++++++++++**********###################*#########################################################################
**+************************#**#*;;;;;;;;;;;;++++++++++++**********####################*########################################################################
********************************+*++;;;+++;;++++++++++++*************##################*############################:::;+**####################################
*+*********************+*#++*******;++;;;;;;;+++++++++++++**********###################*########################; ..:;+++++*++#################################
+:++****************+****+:*+*****+++*++++++;;++++++++++++**********###################*####################### :;,;++++++++++;################################
++;+*******************;+;++********+;++++++++++++++++************######################*#####################,::::++++++++++++;###############################
+++*********************++************++++++++++++++++************######################*####################:,:.,:::;++++++***+*##############################
*+************************+*************+**++++++++++++*************###############*#####*###################:.,.,::;;++++++***+###############################
+****+******************+*******************++++;++++++***##****############################################*# ..,:;+++++++***++###############################
:***************************************#****++++++++*********################################################# .:;+++++++*****################################
+.++********************************************++++++**+++**####################################################:;;+++++****##################################
+:::++++++******++**********#*********+*********##**************########################*######################################################################
+++++;+++********+,,******************###*******#*##**###********#########**##**########*######################################################################
*+*+**+++*+*+*****++++#*****+*****##**+***********##*#*##**###**########**************##*######################################################################
++****+*+++********+;+*+*****++++++++*#***##**##********##***#########**************###*#######################################################################
++++*+******+***+*+:,:++++++::+;;;+++***+++*+*****####********##*#######******#########*#######################################################################
**++**+***+;***++**+++;;::,,:::;;;;++***+***********************####################*##*#######################################################################
******++**+++********++++;;++++***+++*****##****####**##**############**############*#*########################################################################
**++;*********************++*********+*******########################################*#########################################################################
+;*++*++**+***********+**************##*****####**##**#########################################################################################################
++++:+++++**+*#***********************##**###***####**###########################**############################################################################
***++++*+;+;,+++++********************##########################################*#*############################################################################
+***++++******+++++:+**#*****#********###########################################*#############################################################################
+;+***++++*********+++++++*+*+******################################**********##*##############################################################################
*+++******+++*******+++*****+++**+**################################******####*################################################################################
***++*****++++++************++;;++****###**###########################*****##*#################################################################################
*****++*++********************++++;+****+**###########################***######################################################################################
#****++;++**********************+++++****###**#########################*#*#####################################################################################
###*+***++*********************#*++++++***##########################**#*#######################################################################################
######**++++************#+;+********++++++++++++****############**##**#########################################################################################
#########******#******#**+++**+*****##************#############*###############################################################################################
############************#*+++*+***########******##############*#*##############################################################################################
###############***#********+++++**########****###########***###################################################################################################
$#####*+******+*****++;+;+++++;;;;;+++++++++++++++++*********#########**########################################################################################
##*+;:+*****#++***++;++++++;:;;;;;++++++++++++++++++********############*######################################################################################
#*;,;++***++++*;;;++++++++++++;;;;;;+++++++++++++++*************###############################################################################################
+,,+++;+;++++;+++;+++++++++++++;+++++++++++++++++++++***********###############################################################################################
;+**++++*;+;+;++++;+++;;;++++++;;+++++++++++++++++++++**+*******###############################################################################################
+**;;;+++;::::::,:++++++++*++++;+;++++++++++++++++++++**********###############*###############################################################################
++*+.,,:++;,,;,::::;++*++*++++;+++++++++++++;+++++**************################*##############################################################################
;+....,.;;,,,:+*;:;+**+**++++++++++++++++++++++++++++***++******#################*#############################################################################
*+;::++;,:;;**++****+++*++++**#*++++++++++++++++++++++++++++****###############**##############################################################################
*++*******************++++*****+++;;;;;+++++++++++++++++++*********############*###**##########################################################################
*******+************++++******#+++;;;;+;++++++++++++++++***********##################*#########################################################################
***************+**#;;;+*********+;+;+;+++++++++++++++++++**********##################*#########################################################################
********************************+;;;;+++;;;;+++++++++++++**********###################*########################################################################
**+*******************************++;;;;++++++++++++++++++********#####################*###########################:,:;+++*####################################
**+**********************+#*+*******++;;;+++++++++++++++++************#################*########################  .,,;++++++++#################################
,+;+******************##***+++******++*+++++;;++++++++++++**********###################*######################; ;:,:++++++++*+++###############################
*+;;*******************+;*,+*********++++++++++++++++++************#####################*####################+,;:::;++;++++++++;###############################
++++**********************++***********++*++++++++++++**+***********####################*####################..:,,:::;;+++++**++;##############################
++*+************************************#+**++++++++++++******##****#####################*################### .,.,;:;;;+++++***++##############################
**************************+*******************+++;++++++******###############################################* ..,:;+++++++***++###############################
,,+*******************************************++++++++****+***#################################################..::;++++++*****################################
;+,,++****************************************#*+++++++**++***#################################################**:;;+++++****##################################
**;:++++++++**+**+++***********#****#**#*********##*************########################*######################################################################
**++++;;+++*****+++:,+**********#********#**##****########********########**##**########*######################################################################
+***+*+*++++********+;+*******+*****#***************######****##**######**************##*######################################################################
**+*+***+*+*+********++*******++*++++*******##****##*****###**########**************###*#######################################################################
+*++++*+****++***+*#;,;++++*++:;+;;;+++*++++******######**##**##**####**********######**#######################################################################
**++++*+***+++++++*++++;;:::,:;::;;;+++***+***##*************#***###################*##*#######################################################################
****+++++***++*******++*+++:++++***+++******##****####################**############*#*########################################################################
*****+*********************++*********++******#######################################*#########################################################################
*+;***+++*************#***************###*****######**#########################################################################################################
*++;:++++:*+**************************##****##****##############################*##*###########################################################################
++**++++++;;;:;+++*******************#**########################################*#*############################################################################
;+***+*++*******++++;;*****#**#*******##############################**###########*#############################################################################
+;;+**+++***********++++++++********################################**********##*##############################################################################
#*:+#*******++********++*****+++**++**################################******##*################################################################################
**+*+;****++++++++************+++++*****##**############################***##*#################################################################################
****++++*+++*+*****************++++;*****#**##########################***######################################################################################
#******+;+************+**********++++++***#############################*#*#####################################################################################
###*****++****+*****************#*++++++****########################****#######################################################################################
######**++++**********#*+*+++********++++++++++++++*############**##**#########################################################################################
#########****+************++++*+******##***********############*###############################################################################################
############**#*+*******#**+++*+****########****##############*#*##############################################################################################
###############**+********+*++++****#######*#############***###################################################################################################
$######;++*****+*+**+++;+;+++++;;;;;+++++++++++++++++********####**###**########################################################################################
##*+::+******+++**++++++++++;;;;;;;;++++++++++++++++********############*######################################################################################
#*;::+++**++++*+;;++++++++++++;;++++++++++++++++++++****#*******###############################################################################################
+:,:*+;;++++++;;++;++;++++++*++;+++++++++++++++++++++*************#############################################################################################
;++*++*+++++:+;++++;++++;;+*++++;;++;+++++++++++++++++**********###############################################################################################
++*+;;;+++;:,:,,::;;++++++++++++++++++++++++++++++++************############*##*###############################################################################
*+++:,:,;++;,,::::::++++++*+++;+++++++++++++++++++++************################*##############################################################################
++;,....:;:,,::++;:;++**+*++++++*+++++++++++++++++++++**********#################*#############################################################################
*+::;:++:.;;;+*++****+****++****++++++++++++++++++++++++++++****###############**##############################################################################
+*++****+****+*********++++***#*++++++++;++++++++++++++++++*******#################**##########################################################################
+******+*******+*****+++++******++++;;;+++++++++++++++++++********###################*#########################################################################
********************;;;+********++++;;++++++++++++++++++++********###################*#########################################################################
****+****************************+;+;;++++;;++++++++++++++********####################*########################################################################
**++*******************************++;;;++++++++++++++++++********#####################*##########################+ ::;++++*###################################
***+**********************+#*+*******+++++;;++++++++++++++************#################*#######################+  .,:;+++++*++#################################
+,+++*+*********************+;*******++*++++++++++++++++**********##*##################*######################  ::,:++++++++++++###############################
**+,;+*******************+*+++********+;++;+++++++++++**************####################*####################:,;;::;++;++++++++++##############################
*+*++**********************++***********++*+++++++++++**************####################*####################..;,,::::;+++++***+:##############################
+++*+*************************************+*+++++++++++++*****##****#####################*################### .,.,:;;;++++++**++;##############################
++****++*******************+******************+++;++++++*******##############################################:...,:;++++++++**++###############################
+::+*******************************************++++++++********###############################################;..::;++++++****+################################
+;:,:+**********************************#*******++++++++*+++**##################################################::;;+++++****##################################
+**::+++*******+***++*********#*******************##**+***********######################*###########################*****######################################
++++++;+;+*+*****+*++.+***********************##**#########*****#**#########******######*######################################################################
***++++**++**********+;,+*******+*#**#************##**#####**###**######**************##*######################################################################
***+*****+*+*+*******++;********++++++************####****##############************###*#######################################################################
+****+********+**++*+;,;++*+*++;;;;;++++#*++++******####********######**********######**#######################################################################
****+++*;***+*++*++++++;;:;:::::;:;;;;++**********************##**##################*##*#######################################################################
+****++++++*+++*******++++++::+++++**+++****####**######################**##########*#*########################################################################
******+*+******+*************+**********+*****#######################################*#########################################################################
**+;*+++****+*************************#*##*#**######**#########################################################################################################
+*:;;:+**+;*++**************************##***##***##############################*#*############################################################################
;+***+++;+;+++;:++*****+******************######################################*#*############################################################################
+:***++++;*******+++++;+**##************#############################*######**###*#############################################################################
++,;*****+************+++++++***+*****###############################*********##*##############################################################################
**+++******+++*********+++*****+++**+*################################******##*################################################################################
****+;+******+++++++***********+++++*#**####**##########################***##*#################################################################################
****+*++**++**+*****************++++++****#***##########################*######################################################################################
*******++;+***********************++++++****###########################*#*#####################################################################################
####**+*+;*+***+*******************+++++++**########################****#######################################################################################
######**+*+*+***********#*++++********++++++++++******###########*##**#########################################################################################
########*#**++*************+++********##************###########*###############################################################################################
############****#+**********+++*+***########****##############*#*##############################################################################################
###############***+**********++++***########**########**#***###################################################################################################
$#####*:+************;+++:+++++++;;;;+++++++++++++++++*#*****####**###*#########################################################################################
###+;:;+#+****++**++++++++++;:;;;;;;+++++++++++++++++*******############*######################################################################################
*++;:;++***++++*+;;++++++++++++;++++++++++++++++++++*************##############################################################################################
*+:,;++;+++*+++:++++++++++;+++++++++++++++++++++++++++************#############################################################################################
+:++*++*;+++++;+++++++++;;;+*+++;;+++++++++++++++++++++**********##############################################################################################
+++++;+++++;:,:::::;+++++++++++++;;;++++++++++++++**************############*##*###############################################################################
+*+**:,::+;+:,::::::;++++++*+++;++++++++++++++++++++************################*##############################################################################
+++;,...,:;;,,::++;:;++****+;++++*+++++++++++++++++++++**********################*#############################################################################
+++:::,*;:,;;;++++****++***+*++*#+++++++++++++++++++++++++++****################*#**###########################################################################
*++++***++*****+******+*++++*****+++;;+++++++++++++++++++++*******#################**##########################################################################
#++*****+*************+++++******+++++++++++++++++++++++++********###################*#########################################################################
+*******************+*;:++********++;;+++++++++++++++++++++*******###################*#########################################################################
****+*****************************+;+;;+++++++++++++++++**+*******####################*########################################################################
****++*******************************+;;;+++++++++++++++++*********####################*##########################.,,:;+++++###################################
***************************+**++*****+++;+++++++++++++++++************#################*#######################. .,,:;++++++*+#################################
**+,.;++*****************+****+#+*****++*;++++++++++++++++*********####################*######################, ;;::+++++++++*+;###############################
***+..+*******************;+#;+*******#++++++++++++++++*************####################*####################;,;;:;;++;+++++++++:##############################
+***;+***********************++**********+**+++++++++++***************##################*###################+ .::::::;;;++++***+:##############################
;+++++********************#*+**+***********+**++++++++++++****####**#####################*##################+ .,,,:;;;++++++**++:##############################
*+++****+*******************++*****************++++++++*********############################################# ...,:;+++++++***++###############################
+*++******************************#*********#***++++++++********############################################*# ,,::;++++++****+*###############################
*+:,:;+*******************************************++++++++++***#################################################,:;;+++++****##################################
*+**,;;:++******++***+**********#*************##**##**************######################*#######################*##*+*+**######################################
**+*+;++++++**+***+++;;;******************##****############********####**********######*######################################################################
**+***+++**+*#****++**++,+*******+**#*#***********########*#***#########**************##*######################################################################
#***++****+*+**+****#***:+******++**++++******##**######****############************###*#######################################################################
++***++*******+*+******+,+*+++*++:;+++++++#*++++******######****########****##****#####*#######################################################################
;****+***+****+;+*++++++;;:;;::::;;;;++++**********************#####################*##*#######################################################################
++****++******++*********+++++:;+++++*+++*****##########################**##########*#*########################################################################
****************+*************++**************#######################################*#########################################################################
***++*+++********************************#####**###############################################################################################################
**++,:++***+*+*+**************************##**###***############################*##############################################################################
*++***+++++:++++;+++****+***************########################################*#*############################################################################
++,+**++++;***++**+++++++***##**#*****##**############################**####**###*#############################################################################
*++;+***+++************+++++++++*+******##############################********##*##############################################################################
**+;++*****++***********+*++****+++**+**##############################******##*################################################################################
*****;;+******++++++++***********+++++****###**#########################****#*#################################################################################
******+;+**+***+++**#*************++++++*******#########################**#####################################################################################
#******++;++************************+++++****##########################*#*#####################################################################################
####*****+++***********************#*+++++****######################*##*#######################################################################################
######**+****+*************#+++*********++++++++++****##########*###**#########################################################################################
########*#**++*+************++++********##**********###########*###############################################################################################
############**************#**+++*+****########****############*#*##############################################################################################
###############****+********+*++++**########**########**#***###################################################################################################
$####**;+************++;+;+;+++++;;;;;+++++++++++++++**********##**###*#########################################################################################
##**;;;+*******++#*++++++++++:;;;;;;+++++++++++++++++*********##########*######################################################################################
***;::++***+++++*+;;++++++++++++;;+++++++++++++++++++************##############################################################################################
*+:,,++;++++++++;;++++++++++++++;+++++++++++++++++++++************#############################################################################################
+;;+**+++;+++++++++++;+++;+;;++++;;+++++++++++++++++++++**********#############################################################################################
*+++++;+;;:+:;::,:::;+++++++++++++;;;+++++++++++++++************###############*###############################################################################
;+++*+:::++++:,:::,::;++++++++++;+++++++++++++++++++**************##############*##############################################################################
++++,,..,,:+:,,,:;+;;:+++***++++++++++++++++++++++++++************###############*#############################################################################
++++:,,,+;;,;;:+*+++****+*+*++++**++++++++++++++++++++++++++******##############*##############################################################################
+*++;++*++++**#*++*******++++*****++++;+++++++++++++++++++++******#################**##########################################################################
**++*****++*************++;+******++++++;;++++++++++++++++********###################*#########################################################################
******#***********+****+:;+*******+++++++++++++++++++++++++*******###################*#########################################################################
**********************************#+;+;;+++++++++++++++++*********####################*########################################################################
*****++*******************************;;++++++++++++++++++**********####*##############*#########################,.,,:++++++*##################################
*****************************+**+*****+++++++++++++++++++++*********##**###############*######################*  ,:::;++++++*++################################
***+,,++******************++***+++*****++*++++++++++++++**+*********###################*#####################:: +,;;;+;+++++*++;###############################
***++::+********************#*#;+*******+;+*++++++++++++**********######################*###################:;,;;:;;;+++++++++++:*#############################
***+++++**********************++**********++*+++++++++++**********######################*################### ..:::;;;;;+++++**++:##############################
+++++*+***********************************#++**+++++++++******###########################*##################  .,,,:;:;++++++**++:##############################
+*++**************************+*****************++++++*+**+*****############################################# ...,:;+++++++****+###############################
++*+******************************##************++++++++++******##############################################..,::;++++++****+################################
+*+:.:********************************##************++++++++****##############################################*+,:;;++++++****#################################
+*+*+;;;+;+*******+***************#*************##******************####################*#########################*++++***#####################################
****++:++++++*******+*+;:+******************###**####*########********######******######*######################################################################
+***+*+*****+*******++**+;.*+******+**###***+*****############**########**************##*######################################################################
;++**++**++*+***;*******++:*******+***++*+**#***##**######**############************###*#######################################################################
#+;***+++******+++**+***+;;++**+*+;;;++++++***+++*+*########****########******##****##**#######################################################################
*****+++***+**+*#+**++++++::;+::::;;;;;++++*****##**************####################*##*#######################################################################
*;++**+*********++********++++++:;++++**+++***######################################*#*########################################################################
*+********+******+**************+*+*************#####################################*#########################################################################
*****+**++*****+***************************#*###*##############################################################################################################
*****:;++****++++*************************##*#**##****#########################################################################################################
++;+**++*;:+:++*++++*+****************##**####################################***#*############################################################################
+++:****++++**++++++++++++********#*****##############################**####**###*#############################################################################
**++;+****++*************+++*+++*+*+**################################******####*##############################################################################
***+;;+*****++************++++****+++**+################################****##*################################################################################
*****+;++***++**++++++++**********+++++***#####*########################***##*#################################################################################
*******;++**++***++****************++++++****#**########################**#####################################################################################
#*******++;+*************************+++++****#########################*#*#####################################################################################
###*****#++++*************************++++++**######################*##*#######################################################################################
######**++*++++***************++*#*******+++++++++*****#########*###**#########################################################################################
#########****++***********##*+*++*****######********###########*###############################################################################################
############******+********##*+++*+*****######################*#*##############################################################################################
###############*#+*+********#**++++***###################***###################################################################################################
$#####*++********#****++++;++++++++;;;;++++++++++++++**********##**###*#########################################################################################
##*+;::+********++**++++*+++++:;;;;+;++++++++++++++++*********##########*######################################################################################
**+;;::++**++++++*++++++++++++++;++++++++++++++++++++***###*******#############################################################################################
*+;:,:++++++++++++;++++++++++++++;+++++++++++++++++++++*************###########################################################################################
++;++**+++:++++*++++;+++++;;;+++++;++++++++++++++++++++++*********#############################################################################################
*;++++;+++;::;::::::;;++++++++++++;+++++++++++++++++**************##########*##*###############################################################################
++****+::;+*;+:,:::::::;+++++++++++;+++++++++++++++++*************##############*##############################################################################
+++++:,....,+::,::++:;;+++****++++++++++++++++++++++++************###############*#############################################################################
++++::.::+;;:::;++*++****+***++++**+++++++++++++++++++++++********################**###########################################################################
++*++:++*+++++***+*********++++*#**+++++++++++++++++++++++++******#################**##########################################################################
**++*******+**#**********+++++**#*++++++++++++++++++++++++********###################*#########################################################################
+*+*******************+*+;:+*******+++++++++++++++++++++++++******###################*#########################################################################
************************************+;;;;+++++++++++++++++**********##################*########################################################################
******++******************************++;+++++++++++++++++***********###**#############*########################:. ::;++++*++##################################
*********+********************+*#+*****+;+++++++++++++++++++************###############*######################  ,:;;;+;+++++*++################################
*****;,+*********************#***+*+****++*+++++++++++++************###################*#####################::.,;;;;++++++++++;###############################
****;++:++*******************+;*++******#+++*+++++++++++**********######################*###################:,:+;;;;;+++++++++++:##############################
****+**++**********************+*+*********+**+++++++++++*******######################*#*###################  .:;:;;;;;+++++***+;##############################
++**++#++*********************************#*++#*++++++++++******#########################*##################  ,,,,:;;;++++++***+;##############################
*+*+++*+************************+#***************+++++++*********########################################### ..,,,:;;+++++++**++*##############################
++++++********************************************+++++++++******############################################ .,,:;;++++++****+################################
++*++.,+******************************####********#***+++++++****############################################*#.:;;;++++++****#################################
++*++++,++++**************************************##*###********########################*#########################+++++***#####################################
****+++::+++++*******++*;++*******##***********##*##########*#******#*######********####*######################################################################
,++***+*****+++***#******+;:+*******++************########################************##*######################################################################
,;*+**++**+**+++**********+;+#**********+++*******######################************###*#######################################################################
;**;****++***+***+*+***+**+:**++***+;;+++++++***++++****######**##########****##****##**#######################################################################
;+++**+++*********;;**+++++++:;+::::;;;;++++******##**##**##**######################*##########################################################################
**;;+************++****+****+++++;:;++++*+++****####################################*#*########################################################################
**++**************++**************+*************#####################################*#########################################################################
*********+;*****+***************************########################################*##########################################################################
+*****:;++*+****+*************************##******##****########################*##############################################################################
;+*+++*+++;;++++++;;******************####*###################################***#*############################################################################
;+++;+***+++++**+++++++++++*****####**#################################*####**###*#############################################################################
**++;:****+**+************++***+++******################################****####*##############################################################################
****++;+****++++****++*****+*******++++*++##############################****#**################################################################################
******+;+*****+*++++++++************+++++#**#####*######################****#*#################################################################################
********+++******+++*****************+++++****#**#######################**#####################################################################################
#*********+;**************************++++++****#######################*#*#####################################################################################
###*******+;+++***#+********************+++++***####################*#**#######################################################################################
######***++*+*+***********#***++++******#***+++++++*****########*###**#########################################################################################
########*##****++*********##**+++++*****########****###########*###############################################################################################
############**#****+********#***++******######################*#*##############################################################################################
###############***#*+*********+*++++**###################***###################################################################################################
$#####*+;+*********#**+++++++++++++;;;;+++++++++++++++*********#######*#########################################################################################
##*++;:;+********+**++++++++++;;;;;+++++++++++++++++************########*######################################################################################
#*++;:,+*+***+++++++;++++++++++++;++++++++++++++++++****##*********############################################################################################
**+;,,++++++++*+;;;;++++++++++++++;+++++++++++++++++++++**##********###########################################################################################
*+,:;***+++:+++++++++++;+++++;+++++;++++++++++++++++++**+*********#############################################################################################
++++*++;+++;;:;::::::;+++++++++*++++;++++++++++++++++*************##########*##*###############################################################################
#;+**+++;;+++++;,:::::;;++++*+++++++;+++++++++++++++++************##############*##############################################################################
+++*++.,....:+:::,,;+;:;+++****++++++++++++++++++++++++***********###############*#############################################################################
*+*+;;:,.,+:,::;;+*+++++****+++++**+++++++++++++++++++++++********################**###########################################################################
++++*+:++*+++++***++******+*++++**#*++++++++++++++++++++++++******#################**##########################################################################
**+*+*************+*******+++++*****+++++++;++++++++++++++********###################*#########################################################################
*++*********************+++;++****#*++++++++++++++++++++++********###################*#########################################################################
*************************************+;+;;+++++++++++++++++*********##################*############################*+;++*######################################
********+*******************************++++++++++++++++++************###**############*#######################* .,::;+++++++##################################
**********+********************#+#*+****+;+++++++++++++++++++*********##**#############*####################*+ .:;+;;+++++++++;################################
+*****+,+********************+;***++*****+++++++++++++++++**********###################*####################,;;.,:++;++++++++++;###############################
+****+,+,++*******************#+**++******++*+++++++++++++********######################*##################;:.:+;+;+;+++++++++++:##############################
+*+**+*+++**********************+*+*********+**+++++++++++********######################*################## ...:;:;;;;;+++++**++;##############################
*++**+++++************************************+#*+++++++++******#########################*#################  .,,:::;;;+++++****+;##############################
++++****+************************+****************+++++++*********########################################*# ..,,,:;;+++++++**+++##############################
++++++++******************************************++++++++++**#***##########################################*..,,:;;++++++****+*###############################
*++*++.:+***************************##**####*****##***++++++++****############################################,,:;;;++++++**+*#################################
+*++*+++.++++*************************************######****#*****######################*########################++++++*+**####################################
;+++****:;++++++;********+;;+*******#####***********############****########********####*######################################################################
:;+****+*+****++***********;::********+***********############*###########************##*######################################################################
*,+******+*+**+++**+********+;************+*+*****##**####################**********###*#######################################################################
+:**+***++++**+**+++****++**+;**+****+;+++++++***+++++****######**########****##****##**#######################################################################
*,++***+++*+*+***+**+***++*++;;:++::;;;;;++++++*#***################################*##*#######################################################################
***+:*****++******+++***+****+*++++;;++++**+++***###################################*#*########################################################################
***+****************+*************************+***##**###############################*#########################################################################
+*******+**:+*******************************########################################*##########################################################################
;******+;+++**+*****************************####****###*########################*##############################################################################
*,;#+++**+++++*++**+:***#*************########################################***#*############################################################################
+:+++;****+++++**+++++++++++******#*##**################################**#######*#############################################################################
***+*;;*****+++***********++++***++*+*+***##############################*****###*##############################################################################
****++;:+***+*+++*****+********+******+***+*##############################**#**################################################################################
******+;++*****+**++++++++***********+++++****####*#####################****#*#################################################################################
********++++****++++++**#*************++++++****#*######################**#####################################################################################
#**********+++************************#*+++++****######################*#*#####################################################################################
##*#*******+++++************+************+++++**####################*#**#######################################################################################
######***+***+++**#*********+***+++***********+*********############**#########################################################################################
#########*#*+++++***********##*++*++****##########**###########*###############################################################################################
############********+*********#**+++*+**######################*#*##############################################################################################
###############*****#+******##***++++***#################***###################################################################################################
$#####**++*+*+***+***++++++;++++++++;;;;+++++++++++++++********#######*#########################################################################################
##**+;;;+********++**+++++*+++;;+;;;+++++++++++++++++*+*********########*######################################################################################
#**+;:,;*+*****+++*++;+++++++++++++++++++++++++++++++*****##*******############################################################################################
**++,,:++++++++++++;++++++;++++++++;++++++++++++++++++++************###########################################################################################
++::;++*++++;+++++++++;;++++;;;+++++++++++++++++++++++**************###########################################################################################
+++++*++;++;+:;+:::::;;+++++;++++++++;++++++++++++++++************##########*##*###############################################################################
#++++*++;;++++++:::::::;;;++++*+*++++;+++++++++++++++++***********##############*##############################################################################
+++*+++,.....;+;::,:;;;;:+++****++;+++++++++++++++++++++************#############*#############################################################################
+*+*++:,,,,::;::::++*+++******+*+++*++++++++++++++++++++++********################**###########################################################################
++++**+:++*+++++*+**+******+*++++***++++++++++++++++++++++********################***##########################################################################
*****+**********************++++****++++++++++++++++++++++********###################*#########################################################################
++++********************++++;++******+++++++++++++++++++++********###################*#########################################################################
+********+****************************+++;;+++++++++++++++++********##################*##########################**::;;++*#####################################
********++******************************++;+++++++++++++++++**********#################*#######################   ,:;;+++++++*#################################
++*********+********************#+**+***++++++++++++++++++++********####**#############*#####################, .;++;;+++++++++;################################
++*****+:+*********************+*#*+:*****++++++++++++++++******##**###################*####################;;;,,:++;+++++++*+++###############################
++***++,*,;+********************;+*++*****+++*++++++++++++********######################*##################.:.:+++;;;+++++++++*+:##############################
++++*+**++++**********************+**********+**+++++++++++*******######################*################## .,.,;;;;;;;;++++**++;##############################
,+**+*+++;+***********************************+***+++++++*********#######################*#################. .,,,::;;;++++*****+;##############################
++++++++*++***********************++*************#*+++++***********########################################  .,,,,:;;+++++++**+++##############################
++++*++++*******************************#*******#*++++++++*********########################################*..,,::;;++++++***++*###############################
++*+++;.:+****************************##**##******###***++*+++****##########################################*#.,:;;;++++++****#################################
***++*+++,;+++************************#***********########********######################*#######################++++++++***####################################
++*******,,+++++*++*******+,;+******######********##*###########**############******####*######################################################################
+:++****+*++**++++*****+****;;:*####******#*##******##########**##########************##*######################################################################
+*,+********++*++*+*+*******#+;+***********+**********####################**********###*#######################################################################
*+++*#***+++**++**+++****+***+;+**+***+;++++++++#**++++***################****####**##**#######################################################################
*+.++****++*+**+**+*+++***+**+++:++:;;;;;;+++++***#*################################*##########################################################################
*+**+,****+****+*****+********++++++;:+++++*+++***##################################*#*########################################################################
****+++**************+************************#*****#################################*#########################################################################
+*#*+*******;+*******************************##################################################################################################################
*+******+;**+**++*****************************##****####**#####################################################################################################
++:+*+++**+++;+*++*++;******************######################################***#*############################################################################
*;+++++****+++++*++++;++++*++*#****#**##################################**#######*#############################################################################
***+*+;+****++++************++++**++******##############################*****###*##############################################################################
*****++;++*****+**************+*+++***++*****#############################**#**################################################################################
********:++******+**++++++************+++++*#######*######################**#*#################################################################################
*********+;+******+++++*****************+++++***########################**#####################################################################################
#*##********++**+**********************#*+++++****#######################*#####################################################################################
####********+++++*********************###*++++++**##################*#**#######################################################################################
######+**+****#;+*+***##**###*+**+++**********++********############**#########################################################################################
#########***++*++*+*********##**+++++*****#####################*###############################################################################################
############**************##**##**++****######################*#*##############################################################################################
#################*+***+***********++++**#################***###################################################################################################
$####**+++*******+*****++;++;++++++++;;;;++++++++++++++********#######*#########################################################################################
###*++;;++****#***++**++++**+++;;;++;++++++++++++++++***********########*######################################################################################
**+*:;,,+*+*****+++*++++++++++++++;+++++++++++++++++++**************###########################################################################################
**++:.,;*+++*+++++;+;+++++++++++++++++++++++++++++++++++****##******###########################################################################################
++;,:;+**+++;;+++++;++;;++++++++++++++++++++++++++++++**************###########################################################################################
;++++**++++;;+;:;::::;;++++++;++++++++;++++++++++++++++***********##########*##*###############################################################################
**++**+++;;++++++:::::::;;+++++*+*+++++;+++++++++++++++***********##############*##############################################################################
;+++***+,...,,;+;::,:;;:;;+++****+++++++++++++++++++++++**********###############*#############################################################################
++*+*++.,,..::+;::+:+*++++*******+++*++++++++++++++++++++++*********##############**###########################################################################
*+++**++:++*+++++++**+*******+*++++**+++++++++++++++++++++++******################***##########################################################################
****+++*************+********++++****+++++++++++++++++++++********###################*#########################################################################
*++++*********************+*++;+******++++++++++++++++++++++******###################*#########################################################################
***************************************++++++++++++++++++++++*****####################*##########################+.,:;++++#####################################
+*********+******************************++;++++++++++++++++********######**###########*######################...,::;;+++++++*#################################
:;**********+*********************+**++***++++++++++++++++++********######*############*####################:,..;+++++++++++*++*###############################
*+*******;+**********************+****+****++*+++++++++++++*********###################*###################.:+::::;++;++++++++++###############################
+*+****+;++,+*******************#*+**++*****++*++++++++++++*********####################*#################.,:.;++;;;;;++++++*+++:##############################
+++***+++++;**********************;++*********+**+++++++++++********####################*#################  .,,:;;++;;;+++++***++*#############################
,,+**+++++++***********************************+****+++++++*******#######################*################   .,,:::;;;++++****++;##############################
+*++*+++***+************************+***************+++++**********########################################  .,,,:;;;++++++***+++##############################
++++*+++++*****+********************************##*++++++++********########################################* .,,::;;++++++***++*###############################
*++*+**+,,+***************************##****##************++++*****########################################## ,:;;;;++++++***+#################################
**+*+++*;+:,++****************************##********#######*******#######################*######################;++++++****####################################
;++++*+**+:::++++**+********;;+*******######******####*#######################*******###*#######################*#*############################################
;;.;;*****+++*+*++++**#******+;:+#************#####*########################**********##*######################################################################
*+*,:+*****+*+****+*+**+********+***********+++*********####################********###*#######################################################################
***,+*+***++*****+*+*+*****+**#++**+***++;+++++++*#*+++++*##################****##**##**#######################################################################
**:,++#****+*+*********;****+**+;+;++;;;;;+++++++****###############################*##########################################################################
**+**+:******++*++****++********++++++;;+++++*+++***################################*#*########################################################################
+***+**+***************+************************#***#################################*#########################################################################
++**#*********+*****************************####*##############################################################################################################
+*:******+;+*****+***+********************##**####****####**###################################################################################################
:++:*++++++;++:++++**+*;****************########################################*#*############################################################################
++;*+++++*#*+++++**+;+;+++++*++*****##**#*###############################***#####*#############################################################################
***++++;+****+++++**********++++****++*+****#############################****###*##############################################################################
*******+;:+*****++****************++*****+***+############################******###############################################################################
+*******+:++******+***++****************++++**#######*####################**#*#################################################################################
**********+;++#******++++****************+++++****#**###################**#####################################################################################
#*##********+++**+************************++++++**#######################*#####################################################################################
###*+#*******+;;++********************##****+++++**#######**##########**#######################################################################################
######*+*++*+#**++****************+++*****###***+*******############**#########################################################################################
#########***++*++**+**********##**+*******#####################*###############################################################################################
############****+*+****#**##**###**++**+*#####################*#*##############################################################################################
#################**+***+#*******#***++****############*##***###################################################################################################
$#####*++++*******+**#*+++++;++;+++++++;;;+++++++++++++********#######*#########################################################################################
##**++:;++*********+***++++**+++;+++;;++++++++++++++++************######*######################################################################################
****+;,,:**+*****+++*++++++++++++++;++++++++++++++++++**************###########################################################################################
***++,,,+*++++*+*++++;++++++++++++++++++++++++++++++++++****##******###########################################################################################
+++:,:++**+++;+++++++++;++++++;+;++++;++++++++++++++++**************###########################################################################################
:+++++*+++++;;++:+::::;;++++++++++*+++++++++++++++++++++**********##########*##*###############################################################################
**+++++*+;;+++*+++:::::::;;;++++*+++++++++++++++++++++++**********##############*##############################################################################
;**++***+....,.;+;::,:;;;:;+++*****+++++++++++++++++++++******#***##**###########*#############################################################################
+*++++++,,,,.,:;;:::;+*++++*******++++++++++++++++++++++++++********##############**###########################################################################
**++**+++;+++**++;++**+*********+*++**++++++++++++++++++++++******################***##########################################################################
**+++*+++*+*******************+++++***++++++++++++++++++++********###################*#########################################################################
+*+*+++*********************++++++*****+++++++++++++++++++++********#################*#########################################################################
**+*************************************++++++++++++++++++++********##################*#######################*#:.::;++++++####################################
++****************************************++++++++++++++++++********###################*####################*,,..,:;;;++++++++#################################
+:*********+*+*************************+***+++++++++++++++++********######**###########*###################+:.,.;+++;+++++***+++###############################
:*++******+++*********************+***++****++++++++++++++++********###################*##################:,:+;;;:;++++*+++**++;###############################
++++****+,:,:++*******************#+##++****+++*++++++++++++********####################*#################.,,,;+++;;++++++++**++;##############################
+;++**++**+;:+***********************+*+*******+*+++++++++++********####################*################;  .:,:;;++;;;+++++***+;##############################
,,.+++++++++++********************************#*+***+++++++*********#####################*##############*+  ..,,:::;;;++++****++;##############################
;+++++;;+***+**************************#*************++++++**#******####################################*#  ..,:,:;;;+++++****+++##############################
+*++++**++++******************************##****###;**++++**********####################################### ..,::;;;+++++****+*+###############################
***+++*+;;::****************************##****##*###**#*****++******#######################################*:.::;;;+++++++***+#################################
***+*++*+,+:::++**************************#*##********####********######################*######################:+++++++*****###################################
*+++*****+++::+;*+**++*******+::******######********##**####################**********##*######################*########*######################################
*:::,;*****+*++*++*+**********#+::**************####**######################**********##*######################################################################
+*;+::+*****+*+*****+***++********+***********+*******##**##################********###*#######################################################################
****,;**+***+*++**+**+*******+**++***+***++++++++++**+++++**################********##**#######################################################################
***+,+*+*****+*+********++***++**++;++;;;;;++++++++*****############################*##########################################################################
+*+;**;;******+++*+*****+*********++++++;;+++***++**################################*#*########################################################################
++******+***************++****************************###############################*#########################################################################
++****+********++**********************#**##****###############################################################################################################
;+*+******+;+***+*++**#***********#***********########**##########################**###########################################################################
+:++:+****;+;;;++**++***+*****************######################################*#*############################################################################
**+:*:+*+****+*+++*+++++:++++*++******####################################**#####*#############################################################################
+***++*+;++***+++++*************++***+++******############################***###*##############################################################################
+********;++***********************+******+***+*###########################*****###############################################################################
+********+;++*****************************++++**######*###################**#*#################################################################################
***********+++********++++*****************+++++#**##*#########################################################################################################
#*#**********+++**************************#*+++++***#####################*#####################################################################################
###*+*********++;;+*****#********************++++***######**###########*#######################################################################################
######*+**+***#*+++++***********++**+++***####************##########**#########################################################################################
#########***+++*++************##***+**+*****###################*###############################################################################################
############**##**++********#######*+++***####################*#*##############################################################################################
#################**+****+#**********+++***############**#***###################################################################################################
$#####*++++*******++****++++++++;++++++++;++++++++++++++*******#######**########################################################################################
##**+*+:++*+********+**+++++**++;:;+++;+++++++++++++++********##**######*######################################################################################
*****;:,,+****+*+*++**++++++++++++++++++++++++++++++++***************##########################################################################################
**++;;,,:+*+++*+++*+++;+++++++++++++++++++++++++++++++********##****###########################################################################################
++++.,:+++++++;+++++++++;;+++++++;+++++++++++++++++++++*************###########################################################################################
;;++;+*+*++++;++++;:::;;++++++++++++*+;;++++++++++++++++************########*##*###############################################################################
***+;+**+;;;;+++++;::::::;;;;++++**++++++;+++++++++++++++*********##############*##############################################################################
+;**+++*++,.,,,,;++;;,:;;;;;++++****+++++++++++++++++++++*********##**###########*#############################################################################
+*++++*+;,,,..:,:;::;;+++++++******++++++++++++++++++++++++++*******##############**###########################################################################
***+++***;:+++*+++;++*#++******+**+++**+++++++++++++++++++++********##############***##########################################################################
++++++**++**********************++++***++++++++++++++++++++*********#################*#########################################################################
++***++*********************+++*+++*****++++++++++++++++++++********#################*#########################################################################
****************************************++++++++++++++++++++********##################*########################.,,:;;++++++####################################
+++****************************************+++++++++++++++++********###################*####################:, .,:;;++++++*++;#################################
+;;*********+**+************************++**++++++++++++++++**********######*##########*##################*:::,.;+++++++*+***+++###############################
,:*+*******++***********************+#*#*+**#+*++++++++++++++*******###################*##################.;;+;++;;++++++++**++;###############################
,+++**+***:*+*++********************++*#++****++**++++++++++********####################*################ .,.:;+++:;+++++++***++:##############################
.+;;+*+*+**+::++********************+++*******#*+*++++++++++********####################*################   ,:,:++++;;;++++***++;##############################
+:,,+++++++*+++*********************************#+***++++++**#******#####################*###############  ..,:::::;++++++*****++##############################
++;+++;;;;+*+*+************************+**************++++****##*****###################################*: ..,,:,:;;;+++++****+++##############################
,;+*+++**++++***************************##**##***##++***++**********####################################**  .,:::;;;+++++****+++###############################
+*+*++*+*++:;*****************************##****####***#****++******######################################**.,::;;;+++++*****+#################################
****+*++*+:::,.++*********************##******##**##****#####*****######################*#####################:;;;++++++****###################################
**+*;*++**+*+;,;;+++***********+:++*****######**####**######################**********##*#########################****#########################################
**.:,;+******++++++;++***********,,;#*****#*******##****####################**********##*######################################################################
*+*;+;;++*****+******++*+*+*******++************++******####################********###*#######################################################################
*****;;+*****+********+*******+***++**+***++++++++++***++++*################********###*#######################################################################
*****.+*++******+*********+****++*+++;++;+++;+++++++**#*############################*##########################################################################
++**;*++++*****+++#+****+++**********+++++;+++****++**##############################*#*########################################################################
*++******++*****++++****+*+***************************###############################*#########################################################################
++******************************************##*#**#############################################################################################################
+++++*******++***+******+*******************####**######*######################################################################################################
:+,++.++**++;:;;*+**+;+***+***#*************####################################*#*############################################################################
**++++;+*;++#*++*+++++;;;;:+++**+*****####################################****###*#############################################################################
+****+++++;*****+++;************++****+++****#############################***###*##############################################################################
+********++;*****+******************++******+*****##########################***################################################################################
++*******+++++************+****************++++*#######*##################**#*#################################################################################
*#**********+;++****+****+++****************+++++***##*#################*######################################################################################
#*************+++***************************#*++++**####################**#####################################################################################
##*#***********+++++**********************###***++****####****#########*#######################################################################################
######*++*******++*+**##**********+**+++**######**********##########**#########################################################################################
########*****+++++**+*******######**++******###################*###############################################################################################
############**##****+*******########*+++****##################*#*##############################################################################################
##################**+***++#********#**++****#############***###################################################################################################
$#####*++;++***+***+****+++;+:++++++++++++++++++++++++++****##########*#########################################################################################
##**+*+:++*+*********+*+;++****++;;;+++++++++++++++++++*******##**######*######################################################################################
***++;:,::+*+*****+++**+++++++++++++;++++++++++++++++++*****####*****##########################################################################################
**+*++,,,;*++++*+++++++;++++++++++++++++++++++++++++++********##******#########################################################################################
++++:,::+++++++;+++++;++++++++++;+++++++++++++++++++++++**************#######*#################################################################################
;++++;;+++++*+;++;;+::;;;++++++++++++++++++++++++++++++++***********########*##*###############################################################################
*****+***+;;;;+++++;::::::;;;;++++*++*++++;++++++++++++++*********##############*##############################################################################
++*++++*++*:,,,,,+++;:,:;;;;;++;*****+++++++++++++++++++++**********#############*#############################################################################
+*++*++++;,.,...,;;::::+++++++*******+++++++++++++++++++++++********##############**###########################################################################
****+++***;;;++*++;+;++**+******+***+++*++++++++++++++++++++********###############**##########################################################################
*+**++++++++************+********+++++**++++++++++++++++++++********#################*#########################################################################
**++**+***********************++++++****+++++++++++++++++++++*******#################*#############################*##*########################################
*****************************************+++++++++++++++++++********##################*####################### ,,,:;++++++++###################################
*+++****************************************++++++++++++++++**********######**#########*###################::..,:;++++++++*++;#################################
,:,+*********+****************************+**+++++++++++++++**********#################*################*#:::;,,;++++++******+++###############################
.:.*++********+*#********************+****+***+*++++++++++++++******###################*#################:::++:+++++++++*+***++:###############################
;.+++***+**:.+++*+******************#**#*******++*+++++++++++*******####################*##############*   ,:,++++;;+++++++***++;##############################
+,+++++**+**++,:+*****************##***++********+**+++++++++*********##################*###############    ,::;+++++++++++***++;##############################
++:::+++++**++++**********************#*********#*+***++++++**##****#####################*##############.  ..,:::::;;+++++*****+;##############################
+++;;+;;;++;++*+************************#+**************++++**####****##################################+  .,,::::;;++++******++*##############################
..+*+++++**+++****************************#####***#++***+*******#***#####################################: .,,:::;;++++++****+++###############################
:+**+++++***++****************************####**#######*****+++*****#######################################..,:;;;;+++++****++#################################
+****+*+++++::::++********************####********##****####****############**##########*#################*##:;;;;++++++****###################################
*****++*+++++*+:;+;++*******#****+;+******######**##**########################********##*######################*#*+++***#######################################
***::,:+****+*++++++++++**********;:;+**##**#*+*******######################**********##*######################################################################
**+++++::+************++****+********+******************####################********##**#######################################################################
;*****+:;**+**++******+*++********#*+*******+++++++++***++++**################******##**#######################################################################
******:;+**+***+**+*********+***+*#*++++;+++++++++++++**#######################################################################################################
*++**+++*++****++***++*****+***********++++;++++****+***############################*#*########################################################################
***+*****+;+********++*****+**************#*************#############################*#########################################################################
*+++****+;+***#*****+*************************######################################*##########################################################################
*+++:+********+*#+++****#*********************##########**#####################################################################################################
+;;;*+;+*****+:;+++***+;++*+**********##**################################**####*#*############################################################################
***+:++:+*+++**++*+++*++;++;;+++**+***####################################****###*#############################################################################
#+****++*+;:*****+++++**********++******++******############################*###*##############################################################################
++******+*++;+******+*******************+****+****##########################***################################################################################
*++*******+++++*******+**+*******************++++*#######*################*##*#################################################################################
**#**********+;++#********++++****************++++****##################*######################################################################################
#***#**********;++**++******##**************##*++++***###################*#####################################################################################
##*#************+;++**********************#####*++*****#####**########**#######################################################################################
######*++***#****+;*****##**********+**++***####**********##########**#########################################################################################
########*****+++*++*++********######*+******###################*###############################################################################################
############*********+****#***#######**++***##################*#*##############################################################################################
################*##*+****+*#***********++***#############***###################################################################################################
$#####*+++;+***++***+****++++++++;+++++++++;++++++++++++*****#########*#########################################################################################
##****+:++*+**********+*+++**+**+;;;++++++++++++++++++******####****####*######################################################################################
***+*+:,,,+*#+*****+++*++++++++++++++;+++++++++++++++++*******##******#########################################################################################
*****;+,::+++++**++*++++;+++++++++++++++++++++++++++++********##******#########################################################################################
+++++,,,;+++;;+++++++++++++++++++++;++;++++++++++++++++++*************#########################################################################################
;+++;;+++*+++++++:+;+::;;;++++++++++++++;+++++++++++++++++********##########*##*###############################################################################
+**##++***+;;;;+++*+;:;:::;;;;;+++++*+*+++++++++++++++++++********##############*##############################################################################
+++*+;+*+**+,,,,::+++:::;;;;;;;;;+****++++++++++++++++++++**********##**#########*#############################################################################
*,*++*++++:..,..,,;+::;:+++*++++******++++++++++++++++++++++********##############**###########################################################################
*****+**+++;;;;+*++;+;++**++*********++++++++++++++++++++++++*******###############**##########################################################################
*++**+++**++++********************++++**++++++++++++++++++++********#################*#########################################################################
*********+**********************+++++****++++++++++++++++++++*******#################*###########################+::++**#######################################
****+*************************************+++++++++++++++++++*******##########*#######*#####################* ,.,:;+++++++++###################################
*+++++************************************#**++++++++++++++++*********#################*################*#;:;.,,;+++++++++*++;#################################
;::;+*********+*******************************+++++++++++++++*******###################*#################.:;;+:,;+++++++*****+++###############################
+,,,++*********************************+***+***+*+++++++++++++******###################*##############*#, ;;++++*+++++++****+++:###############################
.+,+++******;.+++***********************+**+***+++#+++++++++++******####################*##############;   :,,;+++;;+++++++***+;:##############################
++.++;+*++****+.,+**********************+++*****#*+*++++++++**********##################*##############.   .:;:;+++++++++++***++;##############################
++++::+++++***+++*********************###*****##**#+****++++**##******###################*#############:  ...,::::;;++++++***+++;##############################
++++::+++++++++*+*************************+*##**********++++***###****#################################*. ..,:::::;;++++*****+++###############################
+::+++*+*+***+******************************####**#*;*#*********##**####################################*...,::::;;++++++****++*###############################
+,++*++++++*++++***************************#####*######*******+*****###################################### .,:;;;;++++++****++#################################
******+*+++*+:,,:++*********************######**########**##****############**###########*##################::;;;;+++++****+###################################
******+++++*;+++:++++*************++++****##########**########################********##*######################*+++++***#######################################
****;;:++*****+*++++++++****#******+::+*************#****###################**********##*######################################################################
+**+++;+,:+******++********************+****************####################********##**#######################################################################
++***+**.;+*+***+*******************#++*******+++++++++***++**################******##**#######################################################################
******+:;++*+******+*********+*******+++;++;+++++++++++*#######################################################################################################
***+**++;*+*****++****+*****++**********++++++++++******############################*#*########################################################################
***++*****+:+***************++****************************###########################*#########################################################################
++*+******;+**************************************#############################################################################################################
+++++;+*#*#****+**+++******+**********##********###############################################################################################################
*+;;+*+*+****+#:;+++*+*+;++*+***********###################################*####*#*############################################################################
***++;+;;+*+++**++*++++;+++++:++++**+***#######*###########################***###*#############################################################################
**+***+;++++;*****+++++***********+++*****++******##########################*###*##############################################################################
;*********+++;*********************************+****#########################**################################################################################
*++*******++++++**********+*******************++++**######*################*#*#################################################################################
***+*********+;;++**********+++****************++++****#################*######################################################################################
#***************+++***++****#*###*************#*++++**###################*#####################################################################################
##**************+++++***********************####********####**#########*#######################################################################################
######*+**#**#+****++*******************++**######********##########**#########################################################################################
#########*++*+++**+**++*********####***+******#################*###############################################################################################
############********+*+*********######**++***#############*###*#*##############################################################################################
################*#***+****+*#********#**++**##########*##***###################################################################################################
$#####**++;+*##*+***+++**++++++++++++++++++++++++++++++++****#########**########################################################################################
##****++;++*+*********+**+++*****+;;++++++++++++++++++++****######**####*######################################################################################
**#*+*;:,,:+#*+*****+++*+++++++++++++;++++++++++++++++********##******#########################################################################################
***++++;,,;+++++**+++++*+;++++++++++++++++++++++++++++********####****#########################################################################################
+++++;,,:;*++;+++++++++;++++++++++++++++++++++++++++++++********##****#########################################################################################
+++++;;;++**++++++;+++;;;;++++++*+++++++++++++++++++++++++********#############################################################################################
++****++***+;;;;+++++;::::::;;;;+++++*+#++++;+++++++++++++********##############*##############################################################################
*****++*****+:,,,,,+++:::;;;+;++;;+****+++++++++++++++++++******##**##**#########*#############################################################################
*++*+**++++;..,..,,;+::;;++++++++******+++++++++++++++++++++**********#############*###########################################################################
*****+++***;:;;;;*++:;;++**********+**++++++++++++++++++++++********###############**##########################################################################
***+**++****+++*********************++++*++++++++++++++++++++*********###############*#########################################################################
**********;**********#************+*+++*#*++++++++++++++++++++******###########################################+.:;;++++*######################################
****+***+**********************************+++++++++++++++++++********################*####################+.:,,::++++++++++###################################
***+**+***********************************#*#*++++++++++++++++********#################*#################,:;:,,:+++++++++**++:#################################
+++,++*********+*****************************+++++++++++++++++********#################*################.,;;++;:;+++++++*****+;+###############################
+;.;;+++********************************+***++**+*++++++++++++******###################*###############,,.;+++++++++++++****++++###############################
+.+;+++*+***+*+::;+*********************+***+***+++#++++++++++******####################*###########*#;.  .:,,++++;+++++++****+;;*#############################
+++,++;++*;***++,:++**********************++*+*****+**++++++********####################*############*     .;:;;++++++++++****++;*#############################
;+++;:;++*+*+****+******************************###*+***+++++***#########################*############:  ...,::::;;;++++++***+++;##############################
++*++:.;+++++*++*++***********************************##**++****####**#################################: ..,::::::;;++++*****++;###############################
++;+*+++++*+*++*****************************######**++#*********####**##################################  .,::::;;;++++******++################################
*+.:**+++++++*******************************###########*************####################################*..,:;;;;;++++++*****+#################################
+*++***+*++++++.,:++**********************######**##**######*****########################*#################::;;;;;+++++***++###################################
+************+*++;;++:++************+++*****########**##########################******##*#####################++++++++***######################################
+****+;;;+*****+*++;*+++;+***********+;:+*##**********######################**********##*######################################################################
+****++++;;+****+*+*********#***********+*******************################********##**#######################################################################
+*+****+*:++*****++********+***********++****#*+++++++++********##############******##**#######################################################################
+*+*****#::+*+****+++**********+*******+++++++++++++++++**#####################################################################################################
;*+****#+:+*+****+++****+*****+***+*******++++;++++*****##############################*########################################################################
;***+++*****:;****************+***************************###########################*#########################################################################
+++*;+******:#********#*************************##**###########################################################################################################
;+;+;*++**++********+;******+*******************###############################################################################################################
*+:+++*++#**#*#*+;;++*****++**+***##****########################################*#*############################################################################
***++;;+:;+*+++***+++++++;++++;;+++*******##################################**###*#############################################################################
***+***+;++*+;+*****++++************++******+*****##########################*###*##############################################################################
++*********++;,******+****************************#***#######################**################################################################################
*+++*********++;+*****************##************+++*#########################*#################################################################################
****+*********+++++#**********++**************#*+++++***################*######################################################################################
#*+*************+;++***********####***********###*+++***#################*#####################################################################################
##**+**************+++**********************####*#******####**#########*#######################################################################################
######*+;*******#*++;+****************+***+***######********########**#########################################################################################
#########*++***++*****++********######**+*****#################*###############################################################################################
############**********++****#***#######**++***############*###*#*##############################################################################################
################*##*******#+********###**++***########*##***###################################################################################################
$####***+++++****+***+++*#+++++++++++++++++++++++++++++++****#########**########################################################################################
##****++:;+**+*********++++++****+;;++++++++++++++++++++****######**####*######################################################################################
**#*++;;,,,:+**+*****+++*+*+++++++++++++++++++++++++++**+*****##******#########################################################################################
***+++;+:::++*+++**+++++*+;+++++++++++++++++++++++++***********###****#########################################################################################
++++++:,,:+++++;++++++++++++++++*+++++++++++++++++++++**++******##****#########################################################################################
*++*++;;;+***+++++*+*++;;;+++++++++++++++++++++++++++++++++*******##########*##################################################################################
:;+****++***+;;;;+++++;::;:::;;;;+++++***++++++++++++++++++*****################*##############################################################################
******:+**+*+*:,::::+++;::;;;;;;;;;+****+++++++++++++++++++*****####****#########*#############################################################################
:#+**+**++++;,,,,,,.++;;;;;++*++++******++++++++++++++++++++**********#########################################################################################
*******++**+;:;;;;*++;;;++**+*******+***++++++++++++++++++++********###############**##########################################################################
*******++**+++++*********************+++++++++++++++++++++++++********###############*#########################################################################
***********+*********+***************+++***++++++++++++++++++++*****#########################################+,,:;;++++++######################################
********+*++**************************+*****++++++++++++++++++******##################*###################..,,,::;++++++++++###################################
**********************************************+++++++++++++++++*********######**#######*################ ;;;::::++**+++++**++:#################################
**++,+++*********+****************************++++++++++++++++********#################*############### ,,;+++++;;;+++++*****+;*###############################
+*:;;+:*+***********+********************++***+**+#+++++++++********###################*##############;, ;+;++++++++++++****+*+:###############################
++.+::++*+******,.;+************************##+*++++*++++++++++*****####################*############:.   ;:,:++++;+++++++****+;;##############################
++++.;++;+*+***+++,:+*********************+++*******+*++++++++***#**####################*############.   . ,;;;;++++++++++****+;;##############################
++++++:+++++******+***********************##****#####+***+++****#########################*###########:,...,.:::::;;;++++++***++++##############################
*****+:,;+++***++**+****************************##**************######**#############################*:. ..,::::::;;++++*****++;###############################
*++:++++++*+++*+******************************#####**+#*#*********####################################+. .,,::::;;+++++******++################################
**+ ,++*++++++++++************************##**#####*####**##********#################################### .,,::;;;+++++******++#################################
***;****+++++*+*:,;+**********************########*##########**+*#######################*#################,:;;;;++++++****++###################################
*++******+*+****+++:*;;++*******#****++++***########**#########*################******##*###################*+++++++++***#*####################################
++****+;+;+******+++++++*+++**********#;;;*+##**********##**################**********##*######################################################################
;++***+++:,++*******+*********************+*****************##################******##**#######################################################################
;+*+****+**,+**+*******+**+*+************+******+*+++++++*#*******############******##**#######################################################################
***+******,:********+++***************+*+++++++++++++++++***###################################################################################################
.+++*****+;:++*****++****+******+*********++++++++++******##########################*#*########################################################################
*;***+;+*****+:*****************+*******************####****#########################*#########################################################################
+++**+++****#+************************************##################################*##########################################################################
;;++++*++***+********+:+******************#*******#############################################################################################################
**+;+;*+#++*****+++;+++****+*++***********######################################*#*############################################################################
****++;;*+:+**++***+++++;+;+*+++++++******##################################**###*#############################################################################
********;;*+**;+*****+++++************++******+****#########################*###*##############################################################################
+++*******++++;,**************************************#######################***###############################################################################
**+++********+++;+********************************+++*#######################*#################################################################################
**#**+******#***:+++**********++++**************#*++****#######################################################################################################
#***#*************+++***********####********************#################*#####################################################################################
##*#+***************+++***********##**********#####*******####****#####*#######################################################################################
######*+;+****#*#***+++*******************++**######****##**########**#########################################################################################
#########*+++++++******++*********######*+******###############*###############################################################################################
###########************++*********######**++***###############*#*##############################################################################################
###############***#*+*******+*******##*#**++**###########***###################################################################################################
$####****++;++***++***+++*+++++;+++++++++++++++++++++++++****#########*#########################################################################################
##*#**+++:++*+***********+++++****+;++++++++++++++++++++******####**####*######################################################################################
****+++;;,,,+***+*****++****++++++++++++++++++++++++++********####****#########################################################################################
*****++;;,::*+***+**++++**++++++++++++++++++++++++++************##******#######################################################################################
++++*++:,,:++++;++++++++++++++++++++++++++++++++++++++**+++*****##******#######################################################################################
+*+++*;:;++***++*+++++++;;;+++++++**++++++++++++++++++++++******############*##*###############################################################################
,::++**++++*++;;+;+++++;;::::;;;;;+++++**+++++++++++++++++++****################*##############################################################################
+******;*******;,:::;+++;::;;;+;;;;;+*****++++++++++++++++******####**##**#######*#############################################################################
*,*++++***+++;,,,..,::++::::++*+++++******++++++++++++++++**************#######################################################################################
********++**++;::;:+++;:;;++**+**********+++++++++++++++++++********###############**##########################################################################
********++++*+:;+***++*****************++++++++++++++++++++++++*****##**#############*#########################################################################
************++********+****************++***++++++++++++++++++********####################################*+.,,:;;++++++;*#####################################
*********+**+*******+****************+*******+++++++++++++++++******############*#####*#################* :;,,,:;+++++++*++;###################################
************************************************++++++++++++++**********######**#######*###############.::+;;;::++**++++***+;:#################################
****+:************+*****************************++++++++++++++**********###############*#############*.,,;++++++;+++++++****++;################################
**+;:+;.++**********************************#*+++*+*++++++++++******###################*############*:. ,+;;;+++++++++++****++;,###############################
*+*.;:.**++******;.++*********************#*###***++**++++++++******####################*###########..   ,;:::++++++++++++***++:###############################
+++++::+;+**+***+++::+**********************#*+*****++**++++++***#######################*###########. .....;+;;+++++++++++***++;###############################
++*:++;;++++++****+*++********************##******###**#*********########################*##########,,...,,,::::;;;;+++++****++;###############################
+*+++++:,,++++***+++++********************##**#*##***************#####**#############################:. .,,:::;;:;;+++++*****+++###############################
:+++:;+++*++++++*+******************************#####+***#********####**#############################;. .,,:::::;;+++++*****++;################################
+***.,;+*+++++++++************************####**######*#####********##################################*...::;;;;+++++++****+++#################################
****+*****++*+**+;.:;*****************##**##########*#########*+*#######################*###############+,::;;;;;+++++****++###################################
;*++*+****+**++*+++*+;++++**************++**###################**###############******##*#################*+++++++++*****#*####################################
.++*****;++;********+;;*+++++***********+:;+*#**###*******##**##############**********##*######################################################################
:+;+****;+::++******+***********#***********++****#***********################******###*#######################################################################
:,;+*+*+#++*.;+******+**+*#*****#+******#***********+++++++*******##############****###*#######################################################################
+**+;******+++******++++**#*******+*******+++;++++++++++++**###########################*#######################################################################
+;+++*****+;.+******+++****+*****+***********+++++++********########################*#*########################################################################
+*;****+***++*+:+****************+**************#*****##**#*#########################*#########################################################################
*+++****+*****+*+***************#*******************################################*##########################################################################
*:**+*+*++*************+;***************####********###########################################################################################################
**+;;++++*;*******++++*++****+******#*******####################################*#*############################################################################
*****++;;++;+***+***+++*++++++**++++*+******################################****#*#############################################################################
******#**;;*++*+++*****++++*************++**********############################*##############################################################################
+++***+****+++*+:+********+*##**************************######################**###############################################################################
**++++******#*+++:++**#*****************************+***#####################*#################################################################################
****+***********+;++************+++******************+**#######################################################################################################
#******+***********+++******************##******####******###############*#####################################################################################
####++**************++++**********************######********##****#####*#######################################################################################
######*+++********##*++++*****************#*+***####################**#########################################################################################
########**++++*+++******++********#######*+******##############*###############################################################################################
############++***********+********########**+*#*##############*#*##############################################################################################
###############*************#+******#####*******#########***###################################################################################################
$####**#*+++;****++**+++++*++++++++++++++++++++++++++++++****#########*#########################################################################################
###***+++;;+**+*********#+++++**++*+;+++++++++++++++++++******####***###*######################################################################################
****++++::,:;+**++*****++**+*+++++++++++++++++++++++++********####*****########################################################################################
****+++;;;,:;++*****+++++**+++++++++++++++++++++++++************##******#######################################################################################
*+++++++,,,:*+++;;++++*+++++++++++*+++++++++++++++++++**********####****#######################################################################################
++++*++;;;;+***++++++++++;+;++++++++**++++++++++++++++++********############*##*###############################################################################
.,.:++**++*++++;;+;+++++:;:;::;;;;;++++++*++++++++++++++********################*##############################################################################
*+*****+:***+*+++::;:+*+++::;;;;;;;+++****++++++++++++++++********####****#######*#############################################################################
+#;#:+++***++++,,,..,,:++;::;++++++++******+++++++++++++++++*******#****#######################################################################################
*********++**++:::::+++;;;;++**********+***+++++++++++++++++********###############**##########################################################################
********++++**++;++*********************++++++++++++++++++++++******##**#############*######################*#+::;++**#########################################
*************++***********##**********+*+++**++++++++++++*++**********###############*###################+ ,,::;;+++++++++#####################################
+***+***++++*+************************+*******+++++++++++*++++********################*################.,;;:,,;;++++++++*++;###################################
+*********************************************#*++++++++++++++************######*######*#############+.:;;+;+;;:++*++++****++:#################################
****++;++***************************************#++*++++++++++**********###############*############..::++++++++++++++++****++;################################
***+:,++,*+*******+***#**********************+##*+*+*+++++++++******###################*###########;:  .;++:++++++++++++****++;;###############################
+++*,:+;**+++*****+:;++*******************##***##+++++#+++++++********##################*##########,.  ..:;;;:++++++++++++***++;###############################
****;+:.++*+*+***+*:*:;+******************##**++****#***++**++****######################*##########. .....,;+;;+++++++++++***++:###############################
**+*:++.;;++++*******++*******************####******###+**********#######################*#########::...,,,:;;;;;;;+++++*****++;###############################
;+*+++*+::,;+***+**++*+*********************##****##**************################################*;:....,::::;;:;;+++++*****+++###############################
;:**++;+;+*++++++*****************************######***##*#********###############################**,. ..,:::::;;+++++******+++################################
++*+*:.,+*++++***++++*********************######**############******#################################: ..,::;;;;++++******+++*#################################
+****+*+**+*+*++**+.,++*******************####################****####################*#*##############,,::;;;+++++++*****+*###################################
+++**+************+:++,+++++*************+++**##################**################****##*################*;;++;+++++****+######################################
,,;;*****++++********+;;*+++;*+#********#*;;;*****##**********##############**********##*######################################################################
:,+:+****;::,::+*******++*****************#*********************############**##****###*#######################################################################
+,,+:******;*+;+*******+**+*****************+*****#**+++++++******##############****###*#######################################################################
+;***:+******:;++******+++********+*********+++++++++++++++***#########################*#######################################################################
++**++******+,+++*****++***********++*********++++++++******########################*#*########################################################################
++*+****+***;***+:*****************+******************######**#######################*#########################################################################
+++++****+****#*+*+****************#**********##*****###############################*##########################################################################
+*++++*+++***************++***************####******###########################################################################################################
**++:++;++*++#****+**+*+*+****#*+*****##******##################################*#*############################################################################
*****+;;;;+++;*****+++++++++*+++**++++++******###############################***#*#############################################################################
*********+;;#;+**++*****+++++***********++++*****+****##########################*##############################################################################
++****++****++**+++********+****************************######################*################################################################################
***+;*********+*++;;+*****************##********###**+**#####################*#################################################################################
*****++*******#**+;;++************+++*********######******#####################################################################################################
#*******************++++*********+**##****##******##******###############*#####################################################################################
###*++*****************++***********##******#***######********##**#*###+#######################################################################################
######*+**+#******###*++++********************+*####################**#########################################################################################
########**++++**+++*+****++*********#######*******#############*###############################################################################################
############*+******+++**+********#########****#*#############*#*##############################################################################################
###############*********#*****+*****####********##########**###################################################################################################
$####****+++++**#+++*+++++++++++++++++++++++++++++++++++++***#########*#########################################################################################
###***+++;;++**+**********++++***+++;;+++++++++++++++++++*****####***###*######################################################################################
*****+++;::::++**+*******+**+*++++++++++++++++++++++**++******####*****########################################################################################
******++:;:::+++**+**+++++**++++++++++++++++++++++++++**********####****###*###################################################################################
*+++**++;,,:;*++++++++*++++++++++++*++++++++++++++++++**********####****#######################################################################################
+++++*++::;+****++++++++++++++++++++*+++++++++++++++++++********###############*###############################################################################
:., +++*++;+*+++;++++++++:;::::;;;;;++++++*+++++++++++++++******################*##############################################################################
+++*****+:*+****++;::;++;*;;:;;;;;;;+;+*****++++++++++++++********####****#######*#############################################################################
;+++++,++****+++,,,,,,:,++:::;;++*++++******++++++++++++++++********##**#######################################################################################
*****+*+++++**++,::;;;++;;;;++****+*****+***++++++++++++++++********###############**##########################################################################
*********+++++**+;+++***+++**************+++++++++++++++++++++******##**#############*######################::::++++++#*#######################################
***************+*********+**##***********+++**++++++++++++************###############*##################  ::;::;++++++*+++#####################################
*+**#*++*+*++*+***************##********++*****+++++++++++**++********################*###############.,;;+:,;++++++++++*++;###################################
:+*********+***********************************#*+++++++++++++************#############*############. ;;;++++++;++*+++*****+;;#################################
******++*************+************************##**++++++++++++********#################*###########,,;::++++++++++++++++***+++;################################
****+,,;+;++**********#*+*********************+***+++*++++++++******###################*########## : . ,+++:;+++*++++++*****++:################################
+++;+,,;;**++*******;;+*****************************++**++++++******####################*#########,.  ..,:;;;;++++++++++*****++:###############################
++***,+;.++*++****++,*:;++****************#####**+****+*****++****######################*#########.....,..:++;;+++++++++*****++:###############################
**+++:++.+;;++++******++********************####******#***********#######################*########,:..,.,,,:;;;;;;++++++*****++;###############################
++**:++++,,.:+*******+++**********************##****####***********#####**########################,:: .,,,::;;;;;;++++++****+++################################
;::++++,++;+++++++****************************##**##***##*##********##############################*,. ..,:::;;:;++++++*****+++*################################
*;++**..,+++++++*+++************************##########*#########****###############################*,...,:;;;;;+++++*******++##################################
+++***++++***++++*++,,;+******************#####################*+*####################*#*#############,,::;;;;+++++++*****+*###################################
**+++*******+++*+*+*,++:++++**************+++***##################################****##*#############*#:;;;;;+++++*****+######################################
+::;*******+++******#**+++++++++************;;+#####****##******############**********##*####################*++****###########################################
;:,+,+****;:;:+:+*****+*+***********#*******#*+*****************################****###*#######################################################################
+;,,+:***+*+;++:++******+*++**************##***#***#**++++++**##**##############****##**#######################################################################
*+:++*:+****+*+;+*+*****+*+**********+*******+++++++++++++*****########################*#######################################################################
*+;**+******++,:*+******+************+**********++++++********######################*#*########################################################################
+++*+*++*+***;***+;*****************+****#**************######*######################*#########################################################################
*++++;****++*****+++******#*********#***********##**#*##############################*##########################################################################
+*++*++++********#********++****#*+*******######**##**#########################################################################################################
****;:++;++*+*********+++*******+***#*##******##################################*#*############################################################################
******+;+;;*+;:**#***++++++;***++**++++++*****################################**#*#############################################################################
**********+;+*;++*++******++++************+++**********#########################*##############################################################################
*+****++*****+++*++;*********+****************************####################*################################################################################
***+;++**********++;;+****************************##******###################*#################################################################################
*****+++**********+;+++*************++********##**###*****#####################################################################################################
#********************+++**********+***##**##******####*****#######**#####*#####################################################################################
####+++*****************++************##********########****##******###+#######################################################################################
######*+*++*********#*#+*+++******************+***##################**#########################################################################################
#########*+++++**++*******++********########*******############*###############################################################################################
############*++*****+++**+**********########**+***############*#*##############################################################################################
################**********************####******##########**###################################################################################################
$####**+**+++;++**+****+++++++++++++++++++++++++++++++++++*****########*########################################################################################
##****++++;;+**************+++++****++++++++++++++++++++******######**##*######################################################################################
*****+++;:::::+++#+******++***+++++++++++++++++++++++*********######*****######################################################################################
******+++:;:::*++*******++***+++++++++++++++++++++++++**********####****#######################################################################################
*+++*++++;,,:;*+++++++++++++++++*+++*+++++++++++++++++**********####****#######################################################################################
:+++++++;,:;++***++++;++;++;++++++++++*+++++++++++++++++********###############*###############################################################################
;,.,,;+++++++*+++;++;+++++;;:;::;;;;;++++++*++++++++++++++******################*##############################################################################
+*++#***++:***++++;+;;;+*+*+::;;;;++;+;+*****+++++++++++++********######***######*#############################################################################
*;+++#+:+++****++:,,,,,,,++;::;;++++++++*****+++++++++++++++********##**#######################################################################################
******+***+*+*+++::::::++;;;;+++*************+++++++++++++++********###############**#######################*##################################################
+*********++++***+;;++**++++*****+*********+++++++++++++++**********####**###########*###################+,:::;+++++*++########################################
**********+*****************##************+++*++++++++++++**********##**#############*################, ,:;;:;;++++++++++;#####################################
**+****+***+*++***************##*********+++***+++++++++++************################*#############:.:;;+;;;;++++++++++*++:###################################
*;+***********************************************++++++++++++************######**#####*##########+..::;+++++++;++*+++*****+;*#################################
******#++++***********************************##**#++*++++++++********#################*#########;.,:::++++++++++++++++****++;#################################
****++,,;:+;***************************************+++++++++++********#################*########*,;.  .:++;;++++++*++++****++;:################################
+***+:;,:.+*++******+*:;+*******************##**#****++*++**++******####################*#######.: .....,;;+;;++++++++++****++:*###############################
+;+*++,++ +*+++*****++:+:++*****************####*++***#+**+********#####################*#######,.....,,,,;+++++++++++++****++;*###############################
+***++:+;.+;;++********+++******************######****##**#********######################*######:::..,,,::::;;;;;+++++++*****+;################################
*+;*+;:+++,,,,++****+*++;+********************####**########********#############################.::...:,::;:;;;;;+++++*****+++################################
;:.;+**+:+++++*+++++*+***+**********************##**#**######*******#############################+.. .,,:::;;;;;++++++*****++;#################################
+*+:+*+;..*+*+**+*************************##**####**#**##########***##############################*,...,::;;;;;+++++******+++##################################
**++**++:++*+*+++++*++::+*****************#####################*++####################*#*###########,,,::;;;;;++++++*****++####################################
+****:**+*****+*++++*+++;:+*+****************++*################**################****##*#############;;;;++++++++++***++######################################
;+:;++******+*#**********:;+++*+*************++;**######**##****##############********##*#################++++******###########################################
:;;.+,+****+,;,::+******+**+**********#**************************#############**#***###*#######################################################################
**:,,+:+***+++++,++*********++*****************+********+++++***################****##**#######################################################################
++*;+;*+:***+***:++******+*********************+++++++++++++****#######################*#######################################################################
;+*+**********+::+*+#***+*+*+*#*******++**********++++++****##*#######################*########################################################################
+;++*;+**++***++**;++*****************+*****##************###########################*#########################################################################
*++;*+;*************++********************##########*#**############################*##########################################################################
**+++++*++*+******+#********++****#*******########**###########################################################################################################
*****;:++;++++;#******++;*#*******#+*+**##**#***##############################***#*############################################################################
******++;;;+**;;*****++++++++++**++*++++********##############################**#*#############################################################################
**********++;+*+++*+++******+++*************++**********########################*##############################################################################
*++***#*+*****++**++:*********+**************************#####################*################################################################################
**#*+;+***********+*+;++**#*************##********##*******##################*#################################################################################
+*****+++**********+++++*********#++**********########******###################################################################################################
*#*******+************++++*************###******#######*****######**#####*#####################################################################################
##**++*******************++***********####****###*########******##***##*#######################################################################################
######*++**+#*******##***++++*******##**##********##################**#########################################################################################
#########**;+++************++*********######******#############*###############################################################################################
############**+*******++**+*********#########******###########*#*##############################################################################################
################*+********#****#******######****##########**###################################################################################################
$####**+**+++;;***+++**++++++++++++++++++++++++++++++++++******#######**########################################################################################
##*****++++;++**************++++****++;+++++++++++++++++****########**##*######################################################################################
*****++++;;::;++******#***++****++++++++++++++++++++++********######*****######################################################################################
******+++;;:,:;+++*#***+++++**++++++++++++++++++++++++************##*****######################################################################################
**++**+*++:,,:;*+++++*+++*+++++++++++++++++++++++++++++*********######**#######################################################################################
:;++++*++:::;+*****+++;+++++++++++++++++++++++++++++++++********###############*###############################################################################
+;,.:,;+**+++**+++;++++;+++;;;;;:;;;;;+++++**+*+++++++++++********##############*##############################################################################
*+++#*****+;++**++++;;++++;++;:;;;+++++;++#**+++++++++++++********######**#######*#############################################################################
+*;****+++*++***++:,,,,,,,+++:::;++*+++++*****++++++++++++************##**#####################################################################################
*#****++**+*+++*++,:::::++;+;;+++**+**********++++++++++++**********###############**###################*#*#*+++**#############################################
++*********+*++**+++;++**+++++**************++++++++++++++***********###**###########*#################.,,:;;;+++++++++########################################
********+**++*****+***********##************++++++++++++++**************#############*##############,.:;;+:;;;+++++++++++;#####################################
***+****+++++*+++***********####**********+*+***++++++++++++************##########*###*###########,,,;;+++;++;;++***++**+++;###################################
*+:+**************************************##*******+++++++++****************###########*########*:,.:::++++*++++++++++****++;##################################
+********;++*+**********************************#**#++++++++++**********###############*######## ,,:;,+++++++++**++++++****++:#################################
*******:,:+;;**************+********************#****+**++++++********#################*#######.,:...,,:+++;++**++++++*****++;+################################
**++*+++,,,;*+++****+**++*********************##*####+++************####################*######., .....,,;++;+++++++++******++,*###############################
:++;*++,++.;++++*****+:;*+;+******************##********+***********####################*#####*:,....,,,,:+++++++++++++****+++,*###############################
++**++++++:;;;++*********+++******************######****#*##********#####################*#####:::.,,,,::::;;;;;+++++++***++++;################################
**+++*+.++*;.,,++***+***+++*********************#####*######********###########################,,;:..,::::;;;;;;;+++++*****++;#################################
++:,:+**+++++;++*;+;;++*************************####*#*#######*******###########################... .,,:::;;;;;++++++******++*#################################
*+++;+*++;,;:++***+*+*************************########**##########**#############################....,,:;;;;;;++++++******++*##################################
***++***+:++**+*++++*+*;,;******************####################++*#################***##*########;.,,::;;;;+++++++******++####################################
+++**+++#******+***++*+:++;:++****************++**##############**##################**##*##########*;::;;;;;+++++++***++*######################################
+:+;:;*+******+*;*********;;+++++*+************;;+*#####**##**################********##*###############++++++++**++###########################################
+;;+,:,+*****;;:+++*******+*************#*****##******##*********###############****###*#######################################################################
*++::,;;;+**+++;++;:*******+******+****+******##*******#*+++++**################****###*#######################################################################
;+++;+;**;*******+;+**************************+*++++++++++++*****###############**#####*#######################################################################
+++++++**********:+*++*****+**+*********++*************+****########################*#*########################################################################
++;+++.:+++*****:+**++********************************#***###########################*#########################################################################
**+++++;****+*******++++***************#******##########*###########################*##########################################################################
****+++++***;*******+*********++**************####################################*############################################################################
****++;:*++++*;+********+++*********+*+**###**##**############################***#*############################################################################
********+;+++**+++******++;+++++**++***+++*+******############################**#*#############################################################################
***********++;+++;+*+++******+****************************######################*##############################################################################
**++*****+****+++++++;*********++*************************####################*################################################################################
**#*++++************++++******************##******#####*****#################*#################################################################################
+*****++++**********+++++***********++**********########****###################################################################################################
#*+#****#*+#**********#++++*************####****#########*****###########*#####################################################################################
###*+*+****************#*+++**********######****##########**********###*#######################################################################################
######*++++*************#*++++********##**##********################**#########################################################################################
#########**++++*******+*#***++********#########***#############*###############################################################################################
############**++******+++*************#########***############*#*##############################################################################################
################**+*******************######******########*####################################################################################################
$####**+**++++;+**++++*++++++++++++++++++++++++++++++++++******#######**########################################################################################
##*++**++++;++***************+++****++++++++++++++++++++******##**##**##*######################################################################################
******++++:;::;++**********++***++++++++++++++++++++++********######****#######################################################################################
*******+++;;:,:;+*+#****+*+++**+++++++++++++++++++++++************##******#####################################################################################
******+*+++:,,,;*+++++++++*+++++++++++++++++++++++++++++********######**#######################################################################################
:;+++++*++,,:;++***++++;++++++++++++++++++++++++++++++++*********##############*###############################################################################
,;;:,::++*++++**++++++++++++;;:;;;;;;;;++++++*+*++++++++++********##############*##############################################################################
+++++**+***+:****+++++++++*+++;;;;;;+;++;+*****+++++++++++********######****#####*#############################################################################
***;##*+;**+++****+;,,,,,,::++:::;++*+++++*****+++++++++++****************#####################################################################################
*+**+**+**++**++*++:::;::;+;+;;+++****+*****+**++++++++++++*********###############**##################*+:;;;;++++**###########################################
++**********++*+**#++;+++*+++++***************++++++++++++******************#########*##############; .,;;;++++++++++++########################################
+*********+*++*****+**************************++++++++++++++**********##**###########*############:.:;;+++;;+++++++++++++;#####################################
+*********++****++************##**********#**+***+++++++++++************##############*#########:,,:;;+++++++;;+********+++*###################################
+**;+*************************##******************#*++++++++****************###########*#######,:,:,;;++++++++++++++****#*+++##################################
***+******++************#*****************##******###+++++++++**********###############*######..:.,,,;+++++++++**+++*******+;+#################################
******++;;:+,++***********#*+*************##**##******+*++++++********#################*#####.,,::..,,,;+;++++****++*******++:#################################
+++*++**+;,::+++*********+++********************###*#**++#**********####################*####.......,.,,;;++;+++++++++****+++;#################################
+;;+;+++::;,.++++******;++;:++****************####*******+#*********####################*####.,:,.,,,,::,;++++++++++++*****+++#################################
+++*++***++:.++;++********+++*******************#####***************#####################*###,:::.,,,,::::;;;;;;++++++****+++;#################################
;+**+**+:+++;:,,:+**++**+*++**********************##****####*********########################,,:;:.,,::::;;;;;;;;+++++*****+++#################################
++*+.:+*+++*++;;+++;+;;++*************************####*#########****########################*#;:,...,,:::;;;;;;++++++*****++;##################################
**+;+:+*++;.;*+++****+************************########**##########**##########################*.....,,:;;;;;;;+++++******+++###################################
****+;+***:,;+**++*++****;:+******************##################****################**##*#######+.,,,::;;;;;++++++******++#####################################
+;+++*++++++****++**++**++++::++****************++**#############***################**##*#########::::;;;;++++++++****++#######################################
*+,+*;:**+*******+********#*;;+++***************+;+**#########**################******##*############*++++++++++***+*##########################################
++;:;:;:+*****+;;:;+**********+***++**##******************#*****################****##**#######################################################################
+*++.,:++:****+++++:;+*******+**+********+******#*******#**+******##############****###*#######################################################################
:++*+;+;+*++*******:+;******+*******************#*++++++++++******##############**#####*#######################################################################
++++**+++*+*******::+*#******+#**********++*************++****##################**##*#*########################################################################
++;++;+,;*+*****++++*+**********************************#*###########################*#########################################################################
***++++*;****+****+***+++*********************##########**##########################*##########################################################################
**+#++*++**+*+******++**#*******+***********########**############################*############################################################################
****+**;+++++++;++********+++***********+*****##***#############################*#*############################################################################
********++;+;+**+++***#*+*+;+++++*#*+***++++******############################**#*#############################################################################
***********+++;+++;++*+++*#*****+***************+*********######################*##############################################################################
***+************+;**++;+********************************#***##################*################################################################################
****+++++***********#+;+++********************##****#####****################*#################################################################################
+******++++**********+*+++**********************#########*****##########*######################################################################################
##+*****+#*+************++++**********+**###******########****###########*#####################################################################################
###*++****#***************++*+**********####****############********###*#######################################################################################
######*+++***+##**********#+++++********##******#***##############*#**#########################################################################################
#########**+;;+*******#***#*+++*********########**#############*###############################################################################################
############***++*****+++*#***********##########****##########*#*##############################################################################################
################********************##**######****#######**####################################################################################################
$####***+**++++;+++*++***++++++++++++++++++++++++++++++++******#######**########################################################################################
##*++**+++++;++++************+++*+***+++++++++++++++++++******######**##*######################################################################################
******++++;;::;;++#*********++****+++++++++++++++++++++*******######****#######################################################################################
********++;;::::+*++*****+*++***+++++++++++++++++++++++*********######****#####################################################################################
*******+*+++:,,:;**++++*+++*++++++++++++++++++++++++++++********######****#####################################################################################
;;+++++++++,,::++***+++++++++++++++++++++++*++++++++++++**********#############*###############################################################################
,:;+::;;:++++++***++++++++++++;;;;;;;;;+++++++*+++++++++++********##############*##############################################################################
++;+********+;++**++++;+++++*+++:;;;;;++++;+****++++++++++********########**#####*#############################################################################
***++*+*+;***++**+**+,,,,,,,:++;::;;++++++++****++++++++****************######################################*#*##############################################
**+*++**;***+**+++++:::::::+;;+;;+++************+++++++++++*********################*################;,:;;;+++++++++###########################################
**+***********+++***++;;++**+++++**************++++++++++++*************##**#########*############,,.::;;++++++++++++++########################################
**********++**++++***+**********####**********++++++++++++++**************###########*#########*:,,;;++++;+++++++++++++++######################################
*;*****************+************####************+*++++++++++**************############*#######:,,.;++++++++++++*********++;####################################
++**++********+*****************************####*****+++++******************###########*####+:,,:;;;;+++**++++++++********+;###################################
.+**+*********************#*****************####**##**++++++++************#############*##*# .,,,,,,:++++++++*****+*******++;##################################
+********+++,,++************#*+*************####****+#*++*+***********#################*##*,.,::,.,,,,;++;++++************++;*#################################
:******++++:;.:**+******+*++**********************##**##+*#***********##################*##,,, .,.,,.:,:;+++++++++++******++;:#################################
;++:;+++++.+:,++++*******,+++++*****************#####*****+#*********###################*##:,,:,,,,,::::;+++++++++++******++;:#################################
++++++++++++;.;++++*********+++*****************######******##*******######################:,:::,,::,::::;;;;;++++++*****+++++#################################
;,++****++,++++::;++**++****++********************#####**######*****#######################,,,;;,,,,::::;;;;;;;+++++******++;##################################
;++*+:;++++*++++;:*++++++++**************************###########******####################*#,,....,,::::;;;;++++++++******++###################################
+***:+:;*+++;++++*****+***********************##**##***+*#################################### ,....,::;;;;;;;++++++******++####################################
;+**++,+***+,:++*+**+++***++;*****************##################****####################*#####:.,,,,::;;;;+++++++******+++#####################################
*++***+***+*:+****+***+++*+;+;:;******************++############***#################**##*#######,::::;;;;;+++++++*****++#######################################
**+,+**;+**********+***+*****+;;+++##***********#*;++#**########################******##*##########:;+;;++++++*****+*##########################################
+++;;+:,+;******+;+++*******+*++********##******###*#*************#*##**########****##**###############*++******###############################################
++*++,.:++,****++++++:;+*********+********+*****###*******#*++*****###############**##**#######################################################################
+:++++;:;++*+*****+*+;++**************************#*+++++++++******####################*#######################################################################
;;*++*+*****+*******:;**++****+**+*********+**************+***##################**##*#*########################################################################
++;;:++*;+*+*******++++++*******++*********+****####********#########################*#########################################################################
*#+++;++*+****++******++;+****************#***######################################*##########################################################################
**#***+*++**+**++*****#+**********+#******##**####################################*############################################################################
********:++++*++*;*#********++********#*****##**#***############################*#*############################################################################
*********++;++;***;*****#***+;+++++**+****++********#############################*#############################################################################
************+++;+++;++*+++********+*************************####################*##############################################################################
*****************+;+*+++;**********+********************##***#################**###############################################################################
****#+++++************+++++*******************############****###############*#################################################################################
+#******++++***********+++++******************##**########****##########*######################################################################################
**+********+*************+++++************####****##########****####*##*#*#####################################################################################
###*+*#****#***************+;+************######**############********#*#######################################################################################
######*++++*#+*#************++++++******##**##********##############**#########################################################################################
#########**+;;;+*************+++********#########***###########*###############################################################################################
############**#+++******++**************#########***##########*#*##############################################################################################
#################**+****##***********#**#################**####################################################################################################
$####***+**++++;+**+*****++++++++++++++++++++++++++++++++******#######**########################################################################################
##*++***++++;;++***#**********++*****+++++++++++++++++++******##**##*##**######################################################################################
**#****++++;;;;;++**********+++***+++++++++++++++++++++*******######****#######################################################################################
********+++;;:,::+*++*******++**++++++++++++++++++++++++********##**##**#*#*###################################################################################
*******+*++++:,::;+*++++++++*+++;++++++++++++++++++++++++*********####****#####################################################################################
+;+++++++*+;,,:;++***++++;+++++++++++++++++++++++++++++++*********#############*###############################################################################
:.;;+;:;+;++++++**++++++++++;++;:;;;;;;;+++++++*++++++++++********######**##*###*##############################################################################
++,:;++*******++****+++;+++++++*;;;;;;;;++++****++++++++++********########***####*#############################################################################
**+**+++++,***++*****+:,,,,,::++;::;;+**++++****++++++++************##**##**#######################*###*;;;;++####*############################################
***+*+;*+:******+++++;,:::::+;++;;+++**++*******++++++++++**********################*#############; ,,:;;+++++++*+++###########################################
**+#***********+******;+++++**++++**************++++++++++**************##**#########*########*+,,,:++++++++++++++**+++########################################
++*********+***+++****+***********##************++++++++++++**************###########*#######+::,,;+++++++++++++*****+++;######################################
++******************+***********######********+*+*++++++++++**************############*#####,::.,;;;++++++*+++++*******++;*####################################
*:+**++***#***+*****************####**********##******++++++************##**###########*###,,,:;;+:;++++***+++++++*******+++###################################
+;***+***********+****************************##*******+*+++++************#############**#. .;,,,,,:+++++++++*+**********++;###################################
*+***********.+++***************************########****++++**********#################*#:.,::::,,,,,;++++++**************+;:##################################
,+*+****+++;:;,;**+*********++****************#######****++***********##################*:,,:.,,,,,,:::;++++++++++++*****+++;##################################
:+++::*++*+.++;++++*******:+*++++*************########****+*#*******####################*:,,,:,,,,,:::::+++++++++++******+++;##################################
++++++++++++++.+++++*********+;+******************######*****##*****####################*::,:;,,,:::::::;;;;++++++++*****+++;*#################################
;+,+**+**+#.++++:+;+*********+*+********************####**######******###################+:,:;+,.,,:::;;;;;;++;+++++*****+*+###################################
:+++*+;+*+*+++++;::+++++++++***+**********************############****####################.:,,,..,,:::;;;;;;+++++++******+++###################################
++***++::+*++;++++********+*********************####*##+*#################################*..,...,,:::;;;;;;++++++******+++####################################
*;+*++*,+*+*+.,;*+*++++++**+++******************################**+*####################*#*#;.,,,,:::;;;;;++++++*******++######################################
++++**+******;++*******+***+;;;;:*+*************#*++**###########***################**##*#####,::::;;;;;+++++++++*****+*#######################################
***+;+++;+++********+***+*++**++;++++**#**********#+++**########################******##*########:;:;;++++++++*****+###########################################
***++:;::+,******+++;++*********++***+****##******##*#*#**####**########**########**###*############*+++++*******##############################################
*+**++,,:;+;*****+++++:;+*******+**********#**####*****#******+*****##############**###*#######################################################################
+++++**+::+;+***+**+**,+*******************************+++++++******###################*#######################################################################
+;:+++**+****+*******;+++*++******++****#***++****************##################**##*#*########################################################################
*+;;::+++;++++******++:*+*********++********+***####********#########################*#########################################################################
***++;+++*+***#*++**#***+;+***************##****###############################################################################################################
****+*++++:*****++******++*#******************####################################*############################################################################
****#*+*+:+*++++#+;;********#++*#**********+#*#######*##########################*#*############################################################################
**********+;++++***++********+;+++++**+****+++*****##############################*#############################################################################
*************+:+;++++;++++*+********+***********************####################*##############################################################################
****#************+;;+***+;**********+*******************####**################**###############################################################################
******++**************#+++;+****#***************############****#############*#################################################################################
++******++;+*************++++*********************##########****########*######################################################################################
#*++******+*++********#****++++**#**********####**##########******#####*#*#####################################################################################
##*#++*********************#++*+**********####################********#*#######################################################################################
######*+++++***#**********##+*+++++*******##**##**#***##############**#########################################################################################
#########**+++++********#***#*++**********########**###########*###############################################################################################
############**#++++*****++**#***********##########**##########*#*##############################################################################################
################***+******##**********##**###############***###################################################################################################
$####***+***+*+++**+*****++++++++++++++++++++++++++++++++******#######**########################################################################################
##*++++*+++++++++*************+++*****++;+++++++++++++++******##**##*##**######################################################################################
**#*****++++:;;;+++***********++****++++++++++++++++++++******######*****######################################################################################
********+**+;:::::**++*****+*++***+++++++++++++++++++++++***********##**#*#*###################################################################################
********++++++,,::++*++++*+++*++++++++++++++++++++++++++**********######**#####################################################################################
*+;+++++++++:,,::+++**++++;+++++++++++++++**++++++++++++++**********###########*###############################################################################
,,,;;++;++++++;++***++++++++++++;;;;;;;;;++++++++*+++++++++*******##############*##############################################################################
++;::,++*+##***++****+++;;++*+++++;;;;+;++++++****++++++++********########***####*#############################################################################
****+*+*+*++++*+*+*+**+:,,,,::,+++::;;++*+++++***++++++++***********######**##################*#*##;:;;+++++**++###############################################
****+*+;*+;***+***++++;,::::,;:++;;+++***********+*+++++++************##############*########*#::..,:;++++++++++*+++*##########################################
****************++*****++;+++***++++*************+++++++++**************##**#########*####*#+::,::++++++++++++++***++++*#######################################
**+*********++**++++***++***********##************++++++++++************##**#########*#####::,:,;+++++++++++++*******+++*######################################
*++******************+************######******#*****++++++++****************##########*##:::;,:;:+;+++****+++++********++;#####################################
**,+**++**********+*******************##******####*****+++++************####**#########*,..,;;;;;:;+++**++*+++++++*******++####################################
+*+***;+**************************************######**#*+*++++************#############;. ,:;,,,,,;++++++++++************+;+###################################
**++********++,*****************************#########***#+*+**********################* ..:;,:,,,::::+++++++*************+;:###################################
;:++*******++,;;+;*+*********++*****************#######***++**********#################,,,.:,,,,,::::::++++++++++*+*****+++;###################################
+.;;+++++*+*.+;+,+++*******+;*+*++**********##****######*****#********################*:.::;;,,,,::::::;++++++++++******+++;###################################
*+;++++++*+++++::++++*********++++******************########**##******#################,:,:;;,::::::;::;;;+++++++++*****+++;###################################
*;;:++****++:+++;++++**********+********************######**#####*****################*,;,:;;;,,,:::::;;;;;++++++++*****++++###################################
+;+;+*+++++**+*+++::;*+++++++*************************############****##################,::,,,..,::::;;;;;++++++++******+++####################################
+++*+**:+,+**+++++++**+**+************************##**#++#############################*#* ,,..,,,:::;;;;;;;++++++******++;#####################################
**++*++*+;+***;.,+**+++++++**+++**************##**###############***####################*#,.,,,,::::;;;;++++++++******++*######################################
*++*+***+******+********++**++:+;;++****************++**#########***################**##*##*,,::::;;;;;++++++++*****+++########################################
****+++++*;++*******#****+**++**+;;*+***#***********#+++*#########################****##*#####.:;;;;;++++++++*****++###########################################
*****++*::,,+*****++++++*********+*+***+****###***********#####*########****######**###*#########+++++++++++*****##############################################
**+*+++;:,,+;+****++++;++*******++****************####**####********##############**###*#######################################################################
++++++*++,;;:;++*******+;+****************************+++++++++*****##############**###*#######################################################################
++;:+++**++**+++*******::***++******+*********+*****************######################*########################################################################
**++;+:++++**;*******++;++********+*************########**##**#######################*#########################################################################
**#*++;+++*+;***#+++**+***+;****************#*****##################################*##########################################################################
*****++*#+;+#+*****+*****#++*#****************##################################*#*############################################################################
*********+;**++*+++++#*********++*********#*****################################*#*############################################################################
***********+;++*;+**+;*********+;++*+++******++*****#############################*#############################################################################
**************+;++;+++;+**+++*******************************####################*##############################################################################
*******************+;+*+**++*********++*******##**##****####**################**###############################################################################
+*****++******++********+++++*******************#############****############*#################################################################################
+;*******+++*+********#***++++**##******#********#############****######*######################################################################################
##++********++**********#***++++**##*********#################****#####*#*#####################################################################################
###*++**********************#+;++***********####################******#*#######################################################################################
######++++++****##********###*++++++**##**######***#################**#########################################################################################
########***++++++***********##**+*********##########**#########*###############################################################################################
############****++++******+***+***********##########**########*#*##############################################################################################
################***++*****##***********#**###########**##***###################################################################################################
$####**+***+*+++;+*++**+***++++;+++++++++++++++++++++++++**********###**########################################################################################
###*+++*+++++;+++**************+++****++++++++++++++**++******##*****##*#######################################################################################
********++*++:;;++++***********++***+++++++++++++++++++++*****######*****######################################################################################
***********+;;::::;+**+*******++***+++++++++++++++++++************####**#**####################################################################################
********++*+;+;,:::++*++++++++*+++++++++++*+++++++++++++************###########################################################################################
**+++++++++++:,,:;++++*+++++++++++++++++++++*+++++++++++++**********########*##*###############################################################################
,,,,+;++;+*+++;;++***++++++++++;+;;;;;;;;+++++++++++++++++++******##############*##############################################################################
+++;,:,;;*+*****++****+;;;++****+++;;;;;;;+++++****+++++++********########***####*####################++**#####################################################
++*+*##+*+*++*+++++*****:,,,::::+++;:;;++*+++++***++++++++**********####****###################..:::;;++++++***++##############################################
****++**:*+;***+***+++++,::::::;+++;++++**********++++++++**+***********############*######*::,,,;+++++++++++++*++++###########################################
*****************++*****+;;;++***++++*************++++++++********************#######*##*+;:::,;++++++++++++++****+++;#########################################
*+**#+********+***+++***************####***********+++++++++****************#########*##:::::.;+++++++++++++++******++++#######################################
+**********************+************####************++++++******************########*#;,::,::;+;++++++*****++++********+;######################################
+*+;+**++***+*****+***************####********######****++++**************##**#######;...,;;,:;::+++++++**++***++*****+*+;#####################################
;**;**#;+*************************************######***#*+*+****************#########,..::;;:,:,:;;++++++++*************+++####################################
++*+**#*******++,**************+**************########**#*+*+*********##############:,..:;,,,,,:;:,;++++++++************++:####################################
*;:+******#+*:::++,*++*********+************####**#######**+**********############*#::::,;,,::::::;:::++++++++*********+++;####################################
++,,:**+++*++;;:;;+++********+:++*************##**#######***+*#*******############*#;:,;;::;,,,:::::;;;++++++++++*****++++;####################################
+++:++*++***++++;,+++++*********;;+*****************########**###*****############*#:::,:;;:,::;::;;::;;;+++++++++*****+++;####################################
**;+;++******+;++;*;+++*********++******************########*#####****##############+.:,:;++,,,:::;:;;;;++++++++++*****++++####################################
*+;+:++*+;++*++*+++;:,++++***+++******************##################################* :::,,,,,:::::;;;;;++++++++++****+++;#####################################
++++**+++,++**++:++++**+**++**********************#####++*############################ .,,,,,,,,::;;;;;;++++++++*******++######################################
*+**++*+**.+***+,,;+**++++*+****++****************####*###########**##################*.,.,,,,::::;;;;+++++++++******+++#######################################
+*++++**********+**+******++***;;;;;**************##**+*##########**################***#+,,:::::;;;;;;++++++++******++#########################################
*****++;++*:+*********##*****++***;;+++*+*****##**##**+++**#######################****##*##,;;;;;;;+++++++++****+*++###########################################
+****++++:+:+;******++++;+********+++***++****##****####**######**########**######**###*######:;++++++++++*****+*##############################################
**+***++;;,:+:+*****+;+;:++*************#*****#+**#####*+*************############**###*############++++****###################################################
+++++++++*:;,+:+**+***+**:++**************************#***++********##############**###*#######################################################################
+++;:+;++*++++*+;*******+;+*#*+***********##****+***************######################*########################################################################
**++;;+:++++**++******++;:+*+*********************######**####*######################*#########################################################################
*****+++++;**+#*******#++***;+**********##********##############################**##*##########################################################################
****#***++;++*+*****++******+***********####**##################################*#*############################################################################
**********+++*+++**++*+**********+************+#**##############################*#*############################################################################
************+:;+++++**++********+++++*+********++*******#########################*#############################################################################
***************+;++;+*+++***++**#******+********************####################*##############################################################################
********************+;+*++#++**********+************##**######**##############**###############################################################################
+******+++*****+*******+**#++;********************############****###########*#################################################################################
+;********++;++*********#+*+++++**##**************##############**######*######################################################################################
#*++********++++*************+++++*************#################****###*#*#####################################################################################
##**;+*********+***************++***********####################******#*#######################################################################################
######++++++*+****##****##****#+++++++**##**##**####################**#########################################################################################
########***+;+++*+************#*++**********########**#########*###############################################################################################
############****+++++*****++**************##########**########*#*##############################################################################################
#################**++*******************############***###**###################################################################################################
$#####*+***++++++++*++**+**++++++++++++++++++++++++++++++**********###*#########################################################################################
##*+++*+*+++++:;++**+***********++******++++++++++++**++******####**###*#######################################################################################
*+*******++*++:;+++++****#******++*****+++++++++++++++**+*****######*****######################################################################################
********++**+;::,,:;***+*****+*+****++++++*+++++++++++************##****#**####################################################################################
***********++++;,:::++#++++*+++**++++++++++++++++++++++++***********###########################################################################################
**++++++++++*+:,,::+*++*+++*++++++**++++++++**+++++++++++++*********########*##*###############################################################################
.,,:,+++++++++;;;+++**++++++++++;++;;;;;;;++++++++*+++++++++******########**####*##############################################################################
;;++;.,::;+******++****+;;;+++***+*++;;;;+++++++**++++++++********###############*#############;:;++++++++*+###################################################
+++*+**+***+*#*#++++*****+,,:,:::;++;;;;;+**++++**++++++++**********####****##############+,::,:::;+++*++++++++++##############################################
****+*;*+:*++*+*+****++++:,::::::;+++++++*********++++++++**************############*###::;:,:;+++++++++++++++**+++*###########################################
*******************+****++;+;+++**++++*************+++++++++**************##**#######*:::;:::;++++++*++++++++****+++;*#########################################
++++***+***********+++****+***********###***********++++++++********##******########+:::;;:,;+++++++*****++++***#**+++;########################################
+**+********************++************######*********+++++++****************######*,,,,,:;;;+++;+*********++++******+*+;#######################################
,+**+***+;****+***+*****************####**##**##**####**++++**************########;,. ,,;;,::::+++++++++**+*********++++;######################################
;++*,+**;;***********+************************###########***++********####**######.,.,;:;;;::::;;;;+++++++*************+++#####################################
****:***********+;************#***#***********##########*****+**********#########;.,,,::,.,,,:::;:;++++++++*************+:#####################################
**++*********+:;;++;+*+*********+***********####**########**++********##########*:::::,;:,::::::;;::;+++++++++*******+++;;#####################################
*+;.,;***++++;+:;+;;+*+********;++*+**********##**########****#*******###########:::;;::;;,:,:::;;;;;;++++++**++*****++++;#####################################
**++;+++++;***+;++,;+++;*********+;;+*****************############****###########:,:;,;;;:,::;:::;;;;;;+++++++++****++++;;#####################################
***++++++****++;+++:+++++*********+***************##########**####******#########+.:,::;++::,:::;;;;;;++++++++++*****++++*#####################################
**+;;;++*+;+**+;***++:::+*++****+*********##******###############################* :;,:,,:,,,,:::;;;;;++++++++++*****++++######################################
**++++++++:;:+**++++++***+**+*************##********###*:+######################### .,::,,,,,,::;;;;;+++++++++*******+++#######################################
+*+*+***++*:;**+*,.:*+*++++*++**++********##**##**####*############*################...,,,,,::::;;;;++++++++++*******++########################################
++++*:+****++****++*******+****++:;;;+******####****##****########*+*###############*#,,,,:::::;;;;;;+++++++*******++*#########################################
+*****;+:*+*++++************+#*****++++++**+****####**#*+++*########################****::;;;;:;;+++++++++*******++############################################
++*****+;:+,;++*******++++++****#***+++*+++*****##****##****####****##**##**###########*##+:;+++++++++++++*****+###############################################
++****+++:;;:;;;*****+:;;;;++*************#*******##**###***************###############*######++++++++*******##################################################
++++++++**+:;:;,+****+**+**;+*******************************++******##############**###*#######################################################################
+++++++;+**+;++**;+#******;+***+*********#**********************##################*###*########################################################################
***++;++;++++***+*******++;;+*****************#*****#################################*#########################################################################
******+++;;+++++****+****+***+;+****************#***################################*##########################################################################
******#**++++*#:*****+**********#***********##**###############################################################################################################
***********+++++*+*+*+****#*******+*************#*################################*############################################################################
************+*:;+++++**++*********++++*+**#*****++*******########################*#############################################################################
****************+;;+;+**+;****+********+********************####################*##############################################################################
********************++;+*+++*++**********+********##**##########**############**###############################################################################
,*******++******++****#*++**++;+********************############***##########*#################################################################################
;:+#*******+++***************++++*##**************##############****####**#####################################################################################
**;+*********++++#****#***#***+++++*##**********################****#####*#####################################################################################
###*+++*********+**************#++************####################****#*#######################################################################################
######*+++++++**********##******+*+++++*############################**#########################################################################################
########***+++++*++*#*********##**++********##########**#######*###############################################################################################
############*****+++++**********+*******#############***######*#*##############################################################################################
##################**++*******************###########****##**###################################################################################################
$#####+;#+**+*+++++**++*++*++++++++++++++++++++++++++++************###*#########################################################################################
###*++*+**+++++;++**************+++*#***+++++++++++++++++*****####**###**######################################################################################
#+*******+++++;:++++*+***********+******++++++++++++++********######*****######################################################################################
*********+***+;;,,::;***+*******++***+++++++++++++++++************####**#***###################################################################################
************++;+;,::;++*++++*+++**++++++++++*+++++++++++++**********###########################################################################################
***+++++++++*++;,,::++++*+++++++++++++++++++++*+++++++++++**********########*##*###############################################################################
..,,:;+++*++*+*+;;+++***++++++++++;++;+;;++++++++++++++++++++*****##############*##############*;;;;++**#######################################################
,,,++:,.:,:++#****+++***+;;;++++**+*++;;;;+++++++*#**+++++********##########**###*#######*.,,,;:;++++++++*+++*#################################################
+**+*+*++*****#*#++***++***;:::::::+++;;;;++*++++***+++++++*********########**######*#::;:::::++++*+++++++++**++*##############################################
*******+**;**+++*++***++++:::::::;;++;++++**********+++++++*************######*####*;;;;;::;+++++++*++++++++**+++++############################################
******+*********+***++****+;;++++*++++++**********#*++++++++****************####*#:::::::::;++++++*++++++++******++;*##########################################
+++*+***************+++*****+**********###***********+++++++********##********###,::::;::;++;+++********++++******++;;#########################################
;+**++********************+#**********######**********++++++****************####,,,,,,;+;;+++;++**********+++******+++;########################################
,,+**+***+++****++****+***************########****####****+++*********####**##*,:.. ::+;:::::;++++**+++++**********++++;#######################################
.:+**,+**+:***********+***********************##**#######*+***********####**##;.,..,;;:;+;::;;;;;;+++++++***********++++#######################################
+****:***********++;****************************##########****+*********######:,,,,,::,,,:::::;::;++++++++*************++######################################
***+**+*******++::;+*:*+**********+***********#############*************######;:;,;:,;;,::;;:;;;::;;++++++++********+++;;######################################
***+..++*+**++++;;;:;***********+;+++*********##############************######::;,;;;;+;::::;;;;;;;;+++++++*********+++;;######################################
**++++++:+:+****+++;:**+++*********+++********##**##**##############****######:,:;:;;++;:::;:::;;;;;++++++++++******+++;+######################################
****++++++****++*;++,+++*+**********++************##################****######.,::::;+++::,:::;;;;;;;+++++++++******+++;#######################################
****+;;;+*+++**+:+**+;:::+*******++*********##******##########################*.:;::::::,,:::::;;;;+++++++++++*****++++*#######################################
***++:+++++:,;+**++:++++***+*+**************####****###*++####################*# .,,:,,,,,,:::;;;;;;+++++++++*******+++########################################
***++*++*+;*+:+***;.,;+*******++************####**#################*##########*##..:,,,,,,::::;;++++++++++++*******+++#########################################
**+++*,***+*+++***+;+***********+++;;;++**###*##**##**##****######*+*###########**..:,::::::::;;;;+++++++++*******+;###########################################
*;****#+++++*#*++**********#*********+++*+****#***#######*++**####################*#.:;:;;;;;;++++++++++++******++#############################################
+++*****+;++;::+********++++**********++***+******##**#####**#####******#############*+::;++;;;+++++++++******++###############################################
+++++**+*+,++,,;,+*****+:+::;++*********************##**##**************############*##***++;+++++++++**+****##################################################
+++++++***++;,,:+:*******+**;+**********************##*******+******###################*########****###########################################################
*+;++++;++***;+;+*+:******#*;;***********+#********+**************##################*#*########################################################################
*****+;++;+*++***+*********;;+*+***********#********#################################*#########################################################################
****++*++++;++*+;***+*****++***+;**************#**#*###########################################################################################################
******#***;+++**;*********##**#**#************##**#############################################################################################################
************++++++*+*+************#***************##############################*#*############################################################################
**************++;+++++**+*****###***++++********#*++**##**#######################*#############################################################################
******************+;+++***++**********************##********####################*##############################################################################
*********************+++++*+**++**********++####**##############****##########**###############################################################################
:+*******++*****#********++++*+++*****#***********##############****#########*#################################################################################
+::*********++++***********#+*++++**####************#############***####**#####################################################################################
**++;**********+++**************++++**##*********#################**###***#####################################################################################
##*#+;++******#*#+********#*****#++++#********####################****#*#######################################################################################
######*++++++++***####****###*###**+++++**##########################**#########################################################################################
########***+++++++++**********###*+++*******###########*#######*###############################################################################################
############*****++++++*****+*************############**##*###*#*##############################################################################################
#################*#*+++***************##**##########****##*####################################################################################################
$####**:****+**++*++*+++++***++++++++++++++*+++++++++++************###*#########################################################################################
##*++*++**+++++;;++***********+*++*******+++++++++++++**********##**###**######################################################################################
#+*******+*++++:++++**+***********+*****++++++++++++++**********####*****######################################################################################
*********+++++;;:::::+*#*+*******++**+++++++++++++++**************####**#**####################################################################################
***********++++++::::;++*++++**++**+++++++++++++++++++++++******##**###########################################################################################
******++++++++++:,,:;+*++*+++*++++++**++++++++**++++++++++******####**######*##*###############################################################################
,,,,::+++++++*++;;;+++***+++*++++++++;++;;++++++++++*++*++++******##############*#######*+;::;;++++++++++*#####################################################
,.,,++;:.,.,++#**++++*****+;++;+++**+++;;;;+++++++**++++++********##########**###*###;+:::,:::;+++++++++**+++##################################################
++++++++*+****#***+++*******::::::::++++;;+++*++++**++++++++**********####****##*#+:;;;:::;+++++**++++++++***++;###############################################
********+**;**;+;+++***++++;::::::;:+++;+++*******#*++++++++**************######;:;;;;:;;:++++++**+++++++++***++;;#############################################
*******+*********+***++***++;;;+++**+++++*********##*+++++++********##******##*:::;;;+;,:;++*+++**++**++++******++;+###########################################
**+****+************++++****+++*********####**********++++++********####****#+::::::::;;++++++**********+++*****++++;##########################################
++++**+*******************#+************######*********+++++****************+::...,:;;;:;+++;+++******************+++;#########################################
.,:+**++***+************+*************##########**######**++++********######:,,..,;;++;;::::;+++++*+++++**********+++++########################################
 ,:+**:***+;**************************##**********######**************####*;,.,.,:;;::;;::;;;;:;++++++++***********+++;########################################
+++*+*,+**********+++#+***********#*************###########*************###:::,:::::.:,:::,:;;;;;++++++++*****+****+**;*#######################################
****++*+********+,,;+*:+++**********************############***+********###;::,:;;:+;:::;;;;;;;;;;++++++++++*******+++;+#######################################
****+,.++******+++:,+;+**+********+++*+*********############************###:;;;:;;;;;;::::;;;;;;;;;+++++++*********+++;*#######################################
****+++++:++++**++;+;,+++*+*********+:++******##**####**############****###,:.:;:;;++;::;:;;;;;;;;;+++++++++******++++;*#######################################
*****+;;+++****++*:++:+;+++*********++********##****################****##*...;,::;+++;:::::;;;;;;++++++++++++****+++;+########################################
*****+;+;+**+++**:;***;:;:;+*******+**********##****#######################* .;;::::::,,,::::;;;++++++++++++++****++++#########################################
****++;+++*+:,:;***+++++++**+**+**+***********##******#*++#################** .,,;:,,,,,,::::;;;;;+++++++++*******+++*#########################################
****;*+**++;++:+**+*:.:++*******+***********############*##################### .,,,:,,,,::::;;;+;+++++++++********++*##########################################
****++*,**+*++++****:+++***********+;;++****########**##**+*#######*+*########* .,,,::::::::;;;;++++++++++*******+;*###########################################
*+++****+;+++***++***********#********++++++#*+#**#######**+++**#################,,:::;;;;;;++++++++++++******++;##############################################
+++******+++++,:+********+++++*********+++**++****####**####**######******########*.::;;;;;;;+++++++++++******+################################################
,+++****++;:++:;;:+*****+:+;++++******+***********#*####**#***************##########*#;;++++++++++++*******+###################################################
++++*+++***++:,:+++;****+*++*+;+********************#*****************#################**#*+++++******#########################################################
**;+++++;++*++++;+**:********;++**********+***##**********##**##**##################*#*########################################################################
*****++;++;+**++**********#*+;++**********************###############################*#########################################################################
********+++;;++*::***+*****+;***+;**************####**#########################################################################################################
******##*+*+++++#+**************+***********######################################*############################################################################
*************+++++++++*++***********#**********#****##############################*############################################################################
************+**++;++++++*++********#*++++***********+*******#####################*#############################################################################
*******************+;+++**+;++*#********************##******####################*##############################################################################
**********************++;++*++**++****#*******####################***#########**###############################################################################
;;********++************#**+***+++****************##**############***########*#################################################################################
+::+*********++++**************+++++**##************##############****##*######################################################################################
#*++;+*********++++*****#*******+++++*####********################**###*#*#####################################################################################
###*++++*********#++**************+++*##**##****###################*###*#######################################################################################
#####**+;++*++****######**##**##****++++**##########################**#########################################################################################
########**+++++++********************+****##############**#####*#####*#########################################################################################
############*****+++++++********#*********############**##*###*#*##############################################################################################
###############*****++++***************##**#########****#**####################################################################################################
$####*+:+**#++*++++++++++*+**++++;++++++++++++++++++++++*********##*##*#########################################################################################
##*+;+**+#**++++:+++**********+**++*****#*++++++++++++**********##***##**######################################################################################
***********+*+++:;+++*+***********++******++++++++++************####*****######################################################################################
**********++*++;::::::+***+*******+****+++++++++++++****************##**#**####################################################################################
***********+++*+;+::::++**++++*+++**++++++++++*+++++++++********##****#########################################################################################
******++++++++*++:,:::;*++*+++++++++++*+++++++++*+++++++++++****####**######*##*########+:;+++++++++*##########################################################
+,,,,::++++++*+++;;;++++***++*++++++++;+++;++++++++++++++++++*****############*#*##;.:,,:::;;+++++++++*++*#####################################################
.....++;, ,.,+++**+++++***++;+++++++++++++++++++++**++++++++******##############.+;:;;:;:;++++++++++++***+++###################################################
**+++*+++*++**#****++********+:::::::++++;;+++*+++++*+++++++************####**:;;;+;;:;;++++++***+++++++***+++;################################################
***+*****;**+*+++;+++***+++++:;::::;;+++++++******##***+++++**************##::;;;:;::::+++++++**++++++++****++++;##############################################
++******+*******+**+***++****;;+;+++**++++**#*****###*+++++++*********##*#;::;::;;;;;;++++++++********+++******+;;#############################################
*********+************+++****++++*********###**********+++++********#####,::,::::;++++++++++************++*****++++*###########################################
*+;+*+*+*********************+************######********+++++**********#,::,...::;+;;;;;;;++++******************++++###########################################
:.,:***+********#*++********************########**########***+*********+:,,,.,:;;+++++;;;;;;++++**++++***********++++##########################################
,.,,+*#++**+:+********************************##**#########*+#+********::.,,,,:;;;::;;;;;;;;;;++++++++***********++++*#########################################
;+;++**.**+#********;+****************************###########+********#;:,:::;::+;::::::;;;;;;;;++++++++*********+++++#########################################
*******++********+,;:+;*:++*********************##############*********:;;:,;;+::+:;;;::;;;;;;;;;+++*+++*********+++;;#########################################
*****+,,++*******+*:,;:;**+*********+++***********#############********:;;;;;;;;+++;:;::;;;;;;;;;++++++++********+++:;#########################################
++**+++++++;++;**++,++::++++********+*:;+*********#####################::,,:;:;;+++;:;:;;;;;;;;;;+++++++++******+++;;+#########################################
*******++++++*+**+++++;,+++++*********#+************##################*...:+::;;++++::::::;;;;;;++++++++++++****++++;##########################################
******+;+:+++*+****:**++;:;:+********+********##****###################*  :;;::::;;:,,,:::;;;;++++++++++++++++**++++*##########################################
*****++;+++*+;,,;****+++++++**+***************######*****+*#############+ ..:,;;:,,,,,,:::;;;;;;++++++++++******++++###########################################
********+***+;+:+**+#;.,+;********+***********##########*################+  ,,,,::,,::,:::;;;+;+++++++++*********++############################################
*+**++**+;**#**:++***+;+**********#**+;;++******######**###*+*#####*+*##**#.,.,,:::::::::;;;++++++++++++********++#############################################
+*+*+****+++++**#+;+*********+**+****+**;++++***#***########**+*############,.,::::;::;;;;++++++++++++*******+++###############################################
+*++*******+,+*;++*+*******+*++**********++*********##**#####***#####******##*:,:;;;;;;;;;;++++++++++*******++#################################################
+:++++**++*;::+;:+:+******;;+;;:;+********************#######***####*******######::;;;;;++++++++++++*****++####################################################
*+;*++++++**++,.;;++:****+**;++;;+**********************##**#*********##############+++++++++++++***+*+*#######################################################
***+;;+++:++***+:;++*++********;+***************##**********###################################################################################################
*+***++;+;+;++**#+************;;+*+*****+*+*******##****#############################*#########################################################################
*********++++:++*+:+***+****#+***++;******#*******###***#######################################################################################################
*********#*++;+++*#+**********##**************####**##############################*############################################################################
***************+*+++****++#***********************#**###########################*#*############################################################################
************#***+;+++++++*+++*********++++********#**+*******####################*#############################################################################
*******************+++++++**+:+*********************############################*##############################################################################
***********************+++++*+;*#++***##********##################****########**###############################################################################
+:+***************#*********++***+++**************####**##########****#######*#################################################################################
;;::******#*++++++**************++++**######**********#############***##*######################################################################################
#*+++;**********++++**********#***+++++*####*******################*##**#*#####################################################################################
###*++++************+#******#*******++**##******#######################*#######################################################################################
######*+;++**++*******##********##****+++++*########################**#########################################################################################
########***+++++++**************####+++*******###########*#####*#####*#########################################################################################
############*****+++++++********************############**####*#*##############################################################################################
################****#+++**********##****##**#########***#**####################################################################################################
$####**++****+*++++++++++**+**++++++++;++++++++++++**+++*********#####**########################################################################################
##*+;++*+***+++++;++***#*******+**++*******+++++++++++**********####*##**######################################################################################
***********+++++;:++++*+************+******+*+++++++**********######*****######################################################################################
**********++++++;:::::;+*##+*******++***++++++++++++++**********##**##**#**####################################################################################
************+**+;;+;:::;++*++++**++**+++++++++++++++++++********####**################*+;;++++**###############################################################
********+++++**+++:,,:;;*++++++*++++++**++++++*+**++++++++********##**######*###+,;,,:;;+++++++++++++*#########################################################
++;,,,,;;++++++*+*;;:+++****++++++++++++;++++++++++*+++***+++*****##########* ;:;;;;;;;;+++++++*++****+++######################################################
. ,...;+;,..:.++;**++++***+++;;+++++*+++++++++++++++***+++++******########,:;;;;++;;;+++++****++++++***+++++###################################################
+*++++*++++++***#***+;********+;::;;;;;*++++;++**++++*+++++++***********,::;;;;;:;;+;+++++*****+++++******++;+#################################################
****+*****+++**+++++++****++++:::::::;++++++++********+++++++*******#**,:::;;;;++;:;++++*++*********+++*****++;*###############################################
+*+******+***+***+******++***+;;;;+++**+++++******##***+++++********#+,::::::;;;;;+++++++++***********+******++;+##############################################
+***********************+++****+++*********###********#*++++*******#:,::,.,,::;+++;+++++++*******************+++++#############################################
+*+;+*#*;*********************+***********######*********+++++*****+:,,:.. ,;;+++;;+;;;;++++*******************+++*############################################
+:,,:****+********#*++**+*********##****###################*++****#;:..,,,:;;;+++++;;;;;;;;+++**++++***********++++############################################
,,..,;**++**+;+*****************************####**##########******;;:,::::::;;::::;;;;;;;;:;++++++++***********+++++###########################################
:::;++**;***#********++*************#*****######**##########*#*#+*::;::::;:::+;::;;;;;;;;;;;;;++++++++*********++++;###########################################
********++*********++,;+++++*********#********#################***::;;;:,;;;;:+;+;;;;;;;;;;;;;;++++*+++********++++;###########################################
+****++:,++++*#***+*+::;:++++********+;;+***##**################**,;:;;;;;:;++++;;;;;;;;;;;++++++++++++********+++;;###########################################
:******+;;+;:,++**++:;+;,+++*+******+*+*:;+**#**################** :,,.::;:;+++++;:;;;;;;;+++;;+++++++++*******++;;+###########################################
+*******++++++++**++*+++:++++*******************##################+ ,.:+;:;;+++++;::::;:;;+;;+++++++++++++*****+++:############################################
+*******;;;;++*++*#++;***+:;;;+********+********##################*  .:;;;,;:;;+:::,:::;;;;;++++++++++++++****+++;+############################################
+******+:;;+**+;;+****+**++++*+***++#***********########*+*#######*#  ..:::;;:,::,,,::::;;;;++++++++++++++***+++++#############################################
********++**#*;+;;+**+++::++********+***********#########*#########*#   ,,:,::::,,::::::;;;;;+++++++++********+++##############################################
+*+*+++**+.#*+**:++***+:;+*************++++*****############**######*+ .,,,,:::::::::::;;;+++++++++++*********++###############################################
**#*+;*****++*+****+#+************+*******++++****#***#######****#####*+ :,:::::;::::;;;++++++++++++*********+#################################################
+**++*******+;+*++:***********++******#***+++***+***####**#####**#####***:,,:;;;;;;;;;++++++++++++++******++###################################################
*;:+*;******+++;+;;++*******:+;;+;+*************#*******######******##****#+.,:;;;;;;;;+++++++++++*******+#####################################################
*+++*;+**+***++;.,;++++***#+**+*+;:+****#****************###**********######*#*:;;++++++++++++++*****++########################################################
****+;;+++;*+***+;;;+++++*******+;+************#**##*****#######################*#**++++++********#############################################################
**+****++;;;+++***;***#*********:+**#*************##****#############################*#########################################################################
**********++;+;+**+;+*#+*******;***+;+************##################################*##########################################################################
******##**#+++;+++**+****#*********+**************################################**###########################################################################
************+*#*+++++**+**+***********#************#**##########################*#*############################################################################
******************;++*++++**+*+***##*##*++++******************###################*#############################################################################
*********************++++++**+;+**********************##########################*##############################################################################
+**********************+++++++++*+#+************####################***#######**###############################################################################
+;+***************##******#**++***+++***##********##################***######*#################################################################################
;+;:;********+++*+************#***+*++**####****##****##############*****######################################################################################
#*+++;+*********+++++*******+*******+++**###********##################**#*#####################################################################################
###**++++**********#++**************#+**+###****#######################*#######################################################################################
######**;+++#*********####****#######**++***########################**#########################################################################################
########**++++;++++***************###*++****##############*####*#####*#########################################################################################
############*+***+++++++**********#*********############***###*#*##############################################################################################
###############*****#*+++*****************#**#########**#***###################################################################################################
$#####*;+**+*+**++++++++++**+**++++++++++++++++++++++++++********#####**########################################################################################
##*+;+++++***+++++;+***#*********++++******+++++++++++**********####*##########################################################################################
#++**********++++;;+++**+************+******++++++++**********########***######################################################################################
+#*********++++++::::::;+***+*******++***+++++++++++++**********##******#**##########*++**#####################################################################
****************++;+;:::+*+*++++**++**++++++++++++++++++********####**####*##::,::;;;+++++++++*++*#############################################################
*********++***+*+++;::,:+**+++++*+++++++*+++++++++*+++++**********####**#.,;;;;;;;;;;+++++++++****+++*#########################################################
+*;;:,,:+++++++*+++;;;+++****+++++++++++++++++++++++++++**********##*#,:;;;;;;+;;;+++******+++++****+++;#######################################################
:. ....;;+::,:,;++*+*;++*+#++++++++++++++++++++++++++***++********#* ,:;;;;;+++;;;++++*******+++++***+++++#####################################################
;+++++++++++++**##+**++*****+***;;;;;;;++*++;+++**++++**++++*****#::::;;;;;++++;:+++*********++**+******+++;###################################################
+*********+#****++++++*******++;::::::;;+++++++*********+++++*#**,::;:;;;;;;+;;;++++++++++**********+*****++;*#################################################
**+*******:#**+***;**+***+****++;;;+++***++++***********++++***+.,::::::::;;++++++*+++++*******************++;+################################################
*+*********+************++++****++++********####****##**++++**+,:,::.,,.::;+++;;++++++++*******************+++++###############################################
*+*+++*+*+***+***********+******+***********######****##**++**:::,,:,,::;++++++++;;;;;++++*****+*************+++###############################################
**:..:****+*********#*++****++#***********################*#*+:;, :,::,:;+++;;++;;;;;;;;;;++**++++**********+++;;##############################################
+,,..,;**++***;+**************************###################,:::,:::;;;;;;::;;;;;;;;;;;;;++++++++**********++++*##############################################
:..,;++*++*****+******++****#***************####****#########;:;;;::;;;;;;++;;++;;;;;;;;;;;+++++++++*********++++*#############################################
:*********+*********+:;:+:*:++*********#**##**##**##########*::;;;;;:;;;;;++++;;;;;;;;;;++;;;+++**+++*******++++++#############################################
;+*****+:,++*********+;,;:;*+++********+;+****##**###########.;;;:;;;;:++++++;;;;;;;;;;;++++++++++++*********+++;+#############################################
:,++****+,;;+;:;++**++.++::***********++*+++**##**########### :,,,,:;;:;++++++;:;;;+;;;;++++++++++++********+++;;##############################################
:+******++++++++*+*+***++;,+*+++**********+*******##########*. ...;+;:;;;+++++;::::;;;;;;;++++++++++++******+++;:##############################################
;+*******+++,++**+***+:+***+:;;;********+*********##########*# ...;;+;:;+;++;:::::::;;;;;+++++++++++++++++**+++;###############################################
.+******+;;;++**+;++********+++**+**+*************#######***##+. .,:;:,+;;,:::,,::::;;;;;+++++++++++++++++*+++++###############################################
**********+****+++;;**+*+;;++*******************###############;    :,::::::::::::::;;;;++++++++++++******++*++################################################
*+****+****;+*+++*,+****+:;+*********#**+:++****########****##**; ...:,,,:::::::::::;;+++++++++++++********+++#################################################
*****+:+*****+++*******+*+********#********+++*+******#########*#*.,,,:::::;;;::;;;;;;++++++++++**********++###################################################
++**++******+++++++++*+*******+*++******#***++********##**######**#+.,,:;;;;;;;;;;;;;+++++++++++********++#####################################################
++:+++++*****+++,;;:;++******+:;:;+;+*******#************#######*****+.::;+;;;;;;;;;++++++++++++******++#######################################################
**+;+++***++**+;+:,;+++:*****+*++*;+++****#***************##**##*******#;:;;;;;;++++++++++++++******+*#########################################################
+****++++++;+++**++:;;++#+********;++**#***********###****################**++;;++++++++++++****+*#############################################################
*+*+**++++;+;++;**+*+*+*#+*******+;+***#************##****########################****+*****###################################################################
***#******+++++;++++;++*********++***+;*************################################*##########################################################################
**********#*+++++;++*++*****+#******#+****##******################################**###########################################################################
************#****+*++++**+*++*#*******####******#*****##########################*#*############################################################################
**************#****;;+*++*++**++****###***++*+**************#####################*#############################################################################
**********************++++++**#+++********************##########################*##############################################################################
;***********************++++;++*+++**+**##********###################***######**###############################################################################
++:+**************##********#*++****++**#####*******################****#####*#################################################################################
++:+:+********++*******************+*+++*#####****##****#############****######################################################################################
#*+;+;:**********+++++**********##**++++**####******###################*#*#####################################################################################
###*++*;++************+*******#********+**##****####################*##*#######################################################################################
######**+;++************####**########**++*+**######################**#########################################################################################
#########*+++++++++***************####**+***##############**###*#####*#########################################################################################
############*+***++++++++*******************##############**##*#*##############################################################################################
###############********+++**********##****##**#########*#***###################################################################################################
$#####+;++**+*+**++++++++++*+***+++++++++++++*+*+++****++************#**########################################################################################
##*+;;++*+****+++++;++***********++++*******++*++++++++*********####*##########################################################################################
#++*********++++++;;+++*+*************+******+++++++++********########**##*#####*++**##########################################################################
+***********++++++:;::::++***+*******++***++++++++++++**********##*****#:;,:::;;++++++*****++*#################################################################
+**************+++;;+;:::+*+***++***+***++++++++++++++++********####.,:;;;++;;;;;+++++++++***++++##############################################################
**********++*****+++;:::;;*++++++*++++****++++++++**++++++*******:,:;;;;;+++;+++++++++**++******++++*##########################################################
**+++:::;+++++++**++;:;+++****+++*++*+++++++++++++++**+++*****+..;;;++++++++;;++++********++++++*+++++#########################################################
,.,..,..;:;;:,;,:+++*+++++***+++;+++++++*+++++++++++++**++**+::;:;;;+++;;;;;++++***********+++*****++++;#######################################################
+++++++*++++**+***##**#++*+*****++;;;;;;++*+++++++*+++++++*+,::;:;;;++++++;;++++++++*******************+;;#####################################################
++**+********+**+#*++++*+*+*+++++:::::;;;+++++++******#***:.,:;:::;;;;;;+++++++++++++*************+******+:####################################################
+***+*****++***+***;******++**+++;+;;+++**++++**#*****#**;,:,:::,,,,:;;+++++++++++++++*******************+;;###################################################
*++***********************+++****++++*********###*****##+:::,,::,,,,:+++++++;+;+;;++++******************+++++##################################################
****+++**+;***********++**++*****+********#**#######****;;::..:::::;;+++++++++;;;;;+++++*****+************++;+#################################################
**++,,;***++************++****+*************#########**:;;::,:::::::;;++++;++;;;;;;;++;+++*++++***********+++;#################################################
*+,....;***+***++***************************#########**;::;:::;;;;;;;;+;:;;;;;;;:;;;+;;+++++++++**********++++*################################################
+:..,,++**+;****;********+**+*****************######***:;::;;;;:;;;;;:++++;+;;++;;;;;;;;;+++++++++*******++++++################################################
:,*********+**********++:++;+++***********#*****####**+,;;;;;;;;;++;;++++++;;;;;;;;;+++++++++***+*********++++;################################################
,;+*****+;:++**********+;:;:+#++*********;++*#**####**+.;;;;,;;++;:+++++++;;;+;;;;;;++++++++++************+++;:################################################
,,,+*+**++,::+++;;**+*+:++:,+*********#**+*;++**#####**..,:,,,;;;;;;++++++;;;;;;;;;;;++++++++++++*****+***+++;+################################################
;;++****++*+;+++++;++++**++:++++*+****************##***   ,.,;++:;;;+++++++;;::;;;;;++;+++++++++++++*****++++:#################################################
,:+*******+;;;+++*+***++;*+*+;;;:+********+*******####**  ..,;;+;;:+;;+++;::::::;;;;;;;+++++++++++++++++++++;+#################################################
;:++*****++;+;+**+;++***+***+++++**+***************###**:.   .:;;:;;+:::::::,:::;;;;++++++++++++++++++++++++;##################################################
,++*+****+*;**+**+;+:;**+*+:+*+*******************#######,    .,:::;::::::::::::;;;;++++++++++++++++**+++++;###################################################
**+****++****+***+**;+**#*::+***********#*;;++****########  ..,.;:,:::::::::::::;;;;++++++++++++*******++++####################################################
:+*****++***+*++******#***+***************+**+++*+******###*  .,,,::::;;;;::;;:;;;++++++++++++****++**++**#####################################################
:++*#**+******+*+*++++*+**********++**********++********#####...:::;;;;;;:;;;;;;++++++++++++*********+++#######################################################
++++*++++******++++:+:+;*******++;;+++******************#*####*..,::;;;;;;;;;;;;++++++++++++********++#########################################################
***++++++#+*+***+*;::;++++****++++*+;++***********##******#*#####;,::;;;;;;;;;++++++++++++++******++###########################################################
****+*+++++++++++*++;;:+++*+********;++*************####****######*#+:;;;;++++++++++++++++*****+**#############################################################
**+***+++++++;+++***++****++*******;++***#***********###***############*++++++++++++++****+**##################################################################
***********+++++;+++++++*++#******;***+++*************####*######################*#***#########################################################################
**************+++++++**+****#+#**##*******##********###############################*###########################################################################
******************+++++;**+**+**********#*#*+#****###***########################*#*############################################################################
********************+++*+++*++*+++****##***++++*************#####################*#############################################################################
***********************+++*++***+;+*****************##################**########*##############################################################################
*;****************##*****+++++++*++++*++**###*******##################***#####**###############################################################################
++,:***************************+++***+++**##**********################****###*#################################################################################
++;+:;*********+++*******************++++*######***#****##############****#####################################################################################
**+++;:+*******#**++++*+********###***++*+**####**##**#################*#*#####################################################################################
##**++*+;+**********+*++**************#*++**##****#####################*#######################################################################################
######**+;+++#*#********######**########**+++**#####################**#########################################################################################
#########**+++++++++****************####******#################*#####*#########################################################################################
############**+***++++++++****#***************############**##*#*##############################################################################################
###############*******#++++****************###*########*#***###################################################################################################
$####*++++**+*+***+++++++++++++++++++++++++++*+++++****+++***********#**########################################################################################
##*+;:++*++****++++;++*************+++******++++++**++**********####**##++::;;++**#############################################################################
+;;***+******++++++;;++++++************+******++++++++********#*##:,::;;::;+++++++****+++*#####################################################################
+************+++++;;;::::++***+*******++***+++++++++++********..,:;;;;++;;++++++++++++***++++##################################################################
+***************+*+;;+;::;;*++**++**++**++++++++++*+++++++*. ;;;++++++++;+++++**++**********++++###############################################################
*****************++++;::::;+*+++++*+++**++*++++++++**++++,.::;;+++++++++;+++++*********+++**++++++*############################################################
***+++;::;+;++++++*++;:;+++*****++*++++++++++++++++++++:::;;;;;+++;+;;;+++++************++++***++++;###########################################################
:,,. .,,.:;++;:;;;;+++++++**#**++++++++++*+++++++++++:::::;;;;;+;+++++++++++*********************++++;#########################################################
,;;+++++++;++**+*****#**+;******+*+;;;;;;++*+++++++*,.,:::::;;;;;;++++++++++++++++*************+*****+;########################################################
++***+********+**++*+;+*+*******++;;;:::;;+++++++**:.,,::;:,,:::;;;+++*+++**++++++**************+*****+;*######################################################
++**************++**;;******++#**+;+;;+++*++++++**:::::,::,,:,.:;;++++++++++++++++********************+++######################################################
+*++************************+******++++********#*:;;,:,,:;;:::;;++++++++++;;+;;+++++****************++++++#####################################################
***+*+++*+*+************+**********+**********##;;;;;:..::;::::;++++++++++;;;;;+++++++****++**********+++;+####################################################
****+,:;****+*************++****+**************#::::;:::;;;;;;+;+++;;+;;;;;;;;;+++;;++++*++++**********+++;####################################################
**+:,.,.;+**:+***++***********************#***#*:;:::;;;;;;;;+;;;++++;;;;;;;;;;+++++++++++++++*********++++*###################################################
*+;...,:;+**;****++****************************+,;:;;;;;;;::++++;+++++;++;++;;;;;;++++++++**++********++++++###################################################
,:,+********++**********++;;,++##**********#***;.:;;;;;;++;++++++++++++;;;+;;;:;++++++++++************++++;+###################################################
..+*****+*+;++********+*++:+:;***+******#*++++*+.,:::;;,;+++;:++++++++;;;;;;;+++++++++++++*************+++;+###################################################
+:,,+****++,,::**+:+**+*+,++::***************+++  ,,,,,,:;+;;;+;++++++;;;;;;+;;;;+++++++++++**********+++;;*###################################################
;,;:++***+++*:+++++++***+*++;:+++++**********+**   .,,.:+++:;+;++++++++;;;:;;;;;++++++++++++++********+++;;####################################################
;.:+********;++;+******+*;**+*+;;;+*******#******   ...;;++++:+++++++;;:::::;;;+++;+++++++++++++++++*++++;+####################################################
+;+++******+;;+++**+;+********++++**++***********,    .,;+;;:+;;;,::;:::::;;;;;;+++++++++++++++++++++++++;#####################################################
,,++********++**+**++;;+**++;;+++***************#*     ..,,::;+;;:::::::::;;;;;;++++++++++++**+++++++++++######################################################
;**+**************+**:++****,;;*************;+++***   ..,,;:::;;::::::::::;;;;;;++++++++++++++****++++++#######################################################
+.++*****+**+++*+*******#+**+#*********+**#*+**++*+*. ...,,,::::;;::::::;;:;;;++++++++++++*********++++########################################################
;,*+****++******+*+*+++;+***********+***********+***** ..,;:::;;:;;;;:::;;;;;;++++++++++++*********+**#########################################################
+++++#+:++*******++;;;;:;;*******++;++++*********#*****+..,,,:;;;;;;;;;;;;;+++++++++++++**********+*###########################################################
+***++;++***+****+;+;::;*+;*****++++++;+************#####+,,:::;++;;;;;;;;;+++++++++++++****+**++*#############################################################
+*****++++++++++++***;:+:+;*+********+++************####**##,,::;;;;;;++++++++++++++++++******+################################################################
***+****++++++;++++**++****++*******+;++**#*********#*####**#*#+;;;;;;++++++++++++++******+*###################################################################
*#**********++;++;;++*++**++********+***++************###########*#*+++++++++++++*******#######################################################################
**************++++++++**++****+++**##**#+***####******##############*#**########**#############################################################################
******************#+*++++***+**+**#*****#***#**#********#*########################*############################################################################
*********************+++**++*++**+++**####***++++***#*********###################*#############################################################################
**********************+*+++++++***++***##***#*******############################*##############################################################################
;++***************##*******+;*+;+**+++**+***###*****###################***####**###############################################################################
++*:+****************************++****+++**####******################****###*#################################################################################
++;;+:+*******#*+++*****#*******#*******+++*######**##**##############****#####################################################################################
**+++;::************+++*+*********##****++**########**###################*#####################################################################################
####+++;+;*********#***++*******************+###**#####################*#######################################################################################
######***++++***************#############***+***####################**#########################################################################################
#########**++++++++++***************####******#################*#####*#########################################################################################
############******+++++++++*******************#############*##*#*##############################################################################################
################********+++*****************#############***###################################################################################################
$#####*+;++***++***++++++++**+++++++++++;++*+++++++***********#*****+::;;++++**#################################################################################
##*+;:;++*+*****++++;++***#***+****++++***#**+++*+**********:,:,,;;;:;;+++++++****++*##########################################################################
*+;+****+****++++++;:;++****************+*****++++++++**, ,,;;;;++++++++++++++++*****++++######################################################################
+************++++++;;;:::;++**#+*******++***+++++++++;..;;++++++++++++++++**++*********+++++###################################################################
++***************+++;;+;::;+++********+***+++++++++:,,;;;+++++++++++++++++***************+++;+#################################################################
***************+***+++;:::;;**+*+++*+++***+*+++++::::;:;+++++++++++++++++************+++**++++++###############################################################
***++++;:;+++*++++**++::;+++****++**++*++++++++::::::;;;;;;++++++++++++++********************++++;#############################################################
:;:,. ,,:,:;++;:;;+;++++++++***+++++++****+*++::,,:;;;:;+;++++++++++++++++++++******************+++*###########################################################
,:;;+++*+++;;++++*******++;********+;;;;;;;+::,.,::;;;::;;;;;;++++*+++++*+++++*********************+;*#########################################################
+++***++*+*****+**++++;**+*+**#**++;;;;;;;;;:::::,:;::,::::;;;+++++++++++++++++********************+;+#########################################################
:+**********#*+*+++*+++***+**+*+**++;;+++++::::::,,:;:::::;;+++++++++++;++;++++*****************+++++;*########################################################
++**+**********#*************+*******+++**:;;;;;,..::::::;;+++++++++++++;;;;+++++*****************++++;########################################################
+**+**+++*+++***********++********#*+****;::::;::,:;:;;;;;;;++++++++++;;;;++++++++++**++********#**+++;;#######################################################
*****+,:++*+*+********************+******.::::;;:;;;;;;;+++++++;;+;;;;;;;;++++++++++**++************+++;#######################################################
***+;,,,,;***;+***++*********************.:;;;;;;;;;;;;+++;;++++++;++++++;;++++++++++++++++*********+++;#######################################################
*++;..,.;;**+;+***;+******************##+ ::;:;;+;+;;::+++++;+++++++++;+++++++++++++++++**********++++++*######################################################
+:::********+++*********++++;++********** .:;;;;+;;;;;;++;+++++++++;;;+;+;;;+++++++++++************+++;;+######################################################
..,;*******++++**********++;+;;+**+******. ,::;::::+;+++;:++++++++;;;;;;;+++++++++++++++************+++;+######################################################
++,::+****++,.;:**++++*++*:+++:**********   .,:,,,:;:+;;;+;++++++++;;;;;++++++++++++++++++*********++++;#######################################################
++.::++*****++;+++*+++******++:++++******.   .,,.,;+++:;+++++++++++;;;;;;;;;;++++++++++++**********+++;:#######################################################
+:.:+********+++;*+*****++++***+++;;******    ..,:;+++++:++;+++++;;::;;;;;;+++++++++++++++**++++++++++;+#######################################################
:;:+++******+;++++**+;+****+***+++++**++#+:.    .,:;++;;;+;;::;;;:::::;;;;;;++++++++++++++**++++*++++;;########################################################
+:;+*********+++***++;+;***+*+;+++********#.     ...::;:;+:;;;::::::::;;;;;;++++++++++++****+++++++++;#########################################################
+++*+*****+*+*******+*+;+***+;:;+***********    ...,,:::;::;:::;:::::::;;;;;++++++++++++++++++**+++++##########################################################
;;.*++**#*++++*+**+#****+****+**********+*##*,  ...,::::::::;;::::::::;;;;;+++++++++++++********++++###########################################################
,;:++****;+******+*;*+**;+***********+*********....,::::;:;;;;;;;:::;;;;;;++++++++++++*********+++*############################################################
+++****+;++*******++;*:+;+,*******+++++++*****##....,,::;;;;;;;;:;;;;;;++++++++++++++*********+++##############################################################
*****+#;++++**+****+;+;,;+++******+*+++;++******+*.,,,:::;++;;;;;;;;;;;+++++++++++++*********++################################################################
*+****++++++++*+******+,;;+:+**********+++**********;,,:::;;;;;;;;;;;;++++++++++++++++*****++##################################################################
**+*+****++++++;++++***+****++********;++***#*******#**+:::;;;;;++++++;+++++++++++++*****+*####################################################################
****##******++++++;;+**++***+********+**#+++####******###**;++++;+++++++++++++++********#######################################################################
**************+#++;++++++#+**##*++***#********############*###**+++++++++***+*****#############################################################################
**************##****++++++++**+*+*********###***##**####**#*######################*############################################################################
**************##**#****++**++**+**+++#**##**#*+++*************###################*#############################################################################
*************************+++++++***+#***##************##################**######*##############################################################################
**+***************####******++++;++*++*+*+**####******##################**####**###############################################################################
++*;++**************####******#***++****+++*####******##################**###*#################################################################################
;;;:+;++*********+++******************#**+++*###########################**#####################################################################################
#*++;;::+************+++********#*####***+++**###########################*#####################################################################################
###*;++++;;#********#*+*++*#**##**#*##***#+***#########################+#######################################################################################
######***+;;++**###*********##############**++**####################**#########################################################################################
#########**+++;+++++++******##********####******###############*#####*#########################################################################################
############*****++++++++++***********##******################*#*##############################################################################################
###############***++****+++++****************############***###################################################################################################
$####**+;++*#**++**++++++++++*++++++++++++++++++*+*:,.,:;;;;+++++++++++++++****++##*############################################################################
##*+:::++*++****++++++++***#++******+++*******+, ,:;++++++++++++++++++++++******++++###########################################################################
*+;+***+#+****++++++;:+++**+*************+**,.,.;;+++++++++++++++++++*************+++++########################################################################
;+************+++++;:;;;:;;++***********++::,:;;;;++++++++++++++++++****************+++++######################################################################
+++***************+*+;;+::;:+*++***+**++:::::;;;;;++++++++++++++++++*****************+++++;####################################################################
+************+**+***++++::::;+++++++++:::::::;;;;;++++++++++++++++++*******************+++++;##################################################################
+****+*++;+++++++++*+++:::+++*****+++;:,,,:;;;;:;;++++++++++++++++++++++*****************+++++#################################################################
::;;:..,,,,:;+++;:;+;;*+++++****+++::::.,::;;;;;;;;;;;+++++++++++++++++++*+*************++***++;###############################################################
;,,;;+++++++,;+:*+*****#**++****+*,:::::::::;:::::::;;;+++++++++++++++++++**********##****+****+:##############################################################
:+;+***+**+**+*****+++++**+*+***+:;;:::;::::;;::::,,;;+++++++++++++++++++++****************+***+++#############################################################
;;++***********+***;**+;******+++:;;;;:;:,,,;;;;:;;;++++++++++++++++++;+++++****************+++++;*############################################################
+++**+************************++::;;;;;::,,:;;;;;;;;;+++++++++++++++++++++++++****************++++:############################################################
++**+****+*+++***+********+****+,;::::;;;::;;;;;;;++++++++++;+++++++;+++++++++++***************+++;+###########################################################
******+:;++++*+***************+ .:;;:;;;+;++;;;;+++++++++++;+;;;++++;;;+++++++++****************+++;###########################################################
****++,.:,+***+*+**+++*********  :;;:;;;+;++;;;;++++++;++++++++++++++++++++++++++***+++*********++;;###########################################################
***+;,...:;+**++**++:**********  ,:;::;;;;;++;;:+++++++++++++++++++++++++++++++++++************++++;###########################################################
*+;,:+++******++************+++   ,:;;;;;+;+++++++;+++++++++++;;+++++++++++++++++++*****+******+++;;###########################################################
:.,.;*******++++*********+++;;+ , .,:,:;::,:;;+++;;+++++++++;;;;+++++++++++++++++++************++++;###########################################################
+++:,:+******,,.;+***+++*+*+:++.    ,,:,::,,+;++;+;+;+++++++++;;+;;+++++++++++++++++***********++++:###########################################################
+++:,.+*****+++++++++*****+*+++:    ..,,..;++++;;+++++++++++++;;;;;;+;;;++++++++++++*********+++++;;###########################################################
:+:,;++*******++++++********;**+  .  ...,,;++++++;+++++++++++;:;;;;;;;++++++++++++++****++++*+++++;*###########################################################
.,:,*+********+;+:;***+++****+***      ..,:;++++;;++;+:;+;;;:::::;;;;;++++++++++++++++**+++++++++;+############################################################
;:+;:+*******++;+*+**++;++***+*++;     ....,;:;;:;++++;;:::::::::;;;;;++++++++++++++++++++++++++++#############################################################
+++:*+*******++******+**:+*****::;:    .....,::::::;;;::::::::::;;;;;;;+++++++++++++++++++++++++;##############################################################
:;+:**+*****+++++;********#*#**;***+  ...,.,,,::::::;;;;;:::::;;;;;;;;;+++++++++++++++*****+++++###############################################################
:,+++***+*:+******++++**#*++*********  .., ,::,:::::;;;;::::::;;;;;;;+++++++++++++++*******++++################################################################
++;+***#*;++*******+++++;++++#******++. ....:;::;;;;;;;;;;;:;;;;;;+;;+++++++++++++++******+++*#################################################################
#*****+*;++++*****+*+;++;:;+;+********+* ..,,,:::;++;;;;;;;;;;;;++++++++++++++++++*******++*###################################################################
*******+++++++++++**+**+::+;+;****#*****++..,,::::;+++;;;;;;+;;;;+++++++++++++++++*****+++#####################################################################
***+*#****++;++++++++***++*+**++********++*#;,::::;;;;;;;;;;++;;++++++++++++++++++******#######################################################################
****#*********++++;+++**++**++*********+***++*#+::::;;;;;;++++++++++++++++++++++**+++*#########################################################################
**************+**+++;+++++**+**#**++***#***+**#**##;++++++++++++++++++++++*******##*###########################################################################
*********************+++++*+++*+**+*********####******##*++++*+++*********######*#*############################################################################
************************++**++**+***++****##**#*++****##******###################*#############################################################################
+#************************++++++++***+****##***********#################***#####*##############################################################################
++*+****************####*****+++++++*++++**+**##*******#################***###**###############################################################################
+++*:*+*****************####*******+++****++**######**##################****#*#################################################################################
++;+;+;+***********++***###***************+++*##########################**#####################################################################################
#*++++:::+************++++**********####**++****#########################*#####################################################################################
####++++++:+*************+++******##**##**#*****#######################+#######################################################################################
######***+;;++****##****##****#############*#*****##################**#########################################################################################
########****++++++++++********##******#####*****##############**#####*#########################################################################################
#############**+++++++++**+++*****************################*#*##############################################################################################
#################**++****+++++************##**###########**####################################################################################################
$#####*+;*+****++***+++++++**++*+*++: ..,;+++++++++++++++++++++++++++*******++++################################################################################
##**:;:;+**+*****+++++++*****++*;::.,,;;;++++++++++++++++++++++*************+++++*#############################################################################
*+:;****++*****++++++;;+++**++::::::;;;;++++++++++++++++++++++****************++++++###########################################################################
:+******#******+++++;:;;;;;;::::::::;;;+++++++++++++++++++++++*****************++++++*#########################################################################
++++*****************+;;;;:,::,,::;;;;;;++++++++++++++++++++++*******************+++++;########################################################################
;****************++*+++++::::,.,::;;;;;;;;++++++++++++++++++++*********************++++++######################################################################
+****+**++++++++++++*+*+,;::,,:::;;;;;;;;;;;;;++++++++++++++***++*+*+**************++++++;#####################################################################
,:;+;, .:,:::+;+++++*+;,::;:::;:::;;:;;:;;::;;++++++++**++++****++++************#***++***+;####################################################################
;,:::;;:;;+++,;:;;++*#::;;;;;:;;:::;;;;:::,,:;++++++*++++++++++++++++*********####****+****;###################################################################
+,+;++***++*+*+******,::;;;;;;;;:,,:;;;;;:;;+++++++*++++++++++++++++++****************+++++;;##################################################################
+;++************++**,,::;;;;;;;::,,;;;;;;;;;+++++++++++++++++++++++++++*****************++++;+#################################################################
;+++**+*************.,:::::;;;;;;;;;;;;;+++;++++++++++++++++++++++++++++++***************++++;#################################################################
;+++*+****+*+*++#*+* .::;;;;;;;+;;+++++++++++++++++;;;++++++++++++++++++++*****************++;+################################################################
********;;++**#*+**,  ,:;;:;;;;+;+++;++++++++++++++++++++++++++;;+++++++++*****************+++;################################################################
*****++:,,,;*******.  :::;;:;;;+++++;+;;;++++++++++++++;++++++++++++++++++++**************++++;################################################################
****+:....::+***.**   ..;;:;;;;++;+++++;++++++++++++++++++++++++++++++++++++++************++++;################################################################
+++;,:++++****+*;** ... ,::;;;++;:;++++++++;+++++++++*++++++;;+++++++++++++++*************+++;;################################################################
+:.,,:********++*+*, .   ,;:,;:::::;;+++++;+++++++++++++;;++++++++++++++++++++************++++;################################################################
++;+;::+*****+;,.;++      .,:::::,::+;+;;+++;;++++++++++;;++;+++++++++++++++++**+*******+++++;;################################################################
++++::,;*+***+++++++      ...,,,,:+++++;;+++++++++++++++;+;;;;++;;++++++++++++**********+++++;+################################################################
+;+::+;+********+++++   . ...,,,:;++++++++;++++++++++++;;;;;;;;;++++++++++++++****+++++++++++;#################################################################
+::,,+++********;+;++        ..,,,;;++++;;++++;;;+;+;;::;:;;;;;;++++++++++++++++**++++++++++;+#################################################################
;+;++;;+******++;;+***       ....,:::+;;;;+++++:::;;;:::::;:;;;+++++++++++++++**+++++++++++;;##################################################################
++++;+**+*****++****;**      .......::;;;;++;;:;;;::;:::::;;;;;;;++++++++++++++++++++++++++;###################################################################
;:++;+*++****++++*+*+**+    .. .,,,:,;+;::;;++;;::::::;:;;;;;;;;++++++++++++++++++**+++++++####################################################################
+:::;++****+++******;++*+   .....,,:::::::::::;;;;:::::;;;;;;;++++++++++++++++++****++++++#####################################################################
+++;:+**+*;++********+:**+, ...,,,,::::;;;;;:;;;;;;;;;;;;;;;;;++++++++++++++++****++++++**#####################################################################
********+++++*+******++;++;; .....,,;:;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++****++++*++*#######################################################################
**+*****++;+++*++++***#+++:;:+....,,,:::;;++;;;;;;;;;;++++;+++++++++++++++********+++**########################################################################
****++******;;+++++:+++**+++++*+..,,,::::;;+++;;;;;;;;;;;;++++++++++++++****++**+++*#*#########################################################################
**+******+**+*++++++++++**+****+**:,,,::;;;;;;;;;;;;++;;++++++++++++++++++++**+++##############################################################################
****************+*+++++++++#++**#**++::::;;;;;;+;;++++++++++++++++++++**++*****################################################################################
**********************+++++++*+**********;;++++++;;+++++++++++++++******+*######*#*############################################################################
************************++++**+***+**+++****#*+++++++++++++***********###########*#############################################################################
*+*************************+;+++*++***++********************##############**####*##############################################################################
++++*#****************##******+++++++**+++**+***##******#################***##**###############################################################################
++++*;******************####********+++*****++**####****#################***#*#################################################################################
+++++++:+*********#*++**####********#*******++**#########################*#####################################################################################
#*++++;;::+************++++***********##****++**#########################*#####################################################################################
###*++:;+++;*************++++**************#*****######################+#######################################################################################
######***++;++++##********##**###############*****##############*###**#########################################################################################
########****+++++++*++******####********####******############**#####*#########################################################################################
#############**+++++++++++**++**********####**################*#*##############################################################################################
################***++*****+++++***********##***##########***###################################################################################################
$#####*;+++*++++++;::::,:;:;;;;++++++++++++++++++++++++****************++++;####################################################################################
##*+;;+:++#*+**+::::::;;:;;;;++++++++++++++++++++++++++****************+++++:##################################################################################
**;:+***+*+#*+:::::::::;;;;;;++++++++++++++++++++++++++*****************+++++;;################################################################################
:;**********,:;:::.,:::;;+++;;++++++++++++++++++++++++**************#****+++++;;+##############################################################################
++++******+,::;::. ,:;;;;;;;;;;;+++++++++++++++++++++++*******************+++++++;#############################################################################
++*******+,:;;:::::;;:;;;;+;;:;;;;;;++++++++++++++++****++****+*************++++++;*###########################################################################
:+******;.,:;;;;;;;;::;:;+;;:;:;;;;;;+++++++++***+++******++++************#**+++++++###########################################################################
.::;++..,::;;;;;;;;;;;;::;++;:;;;:::;+++++++++++++++++++++++++********######***++***+##########################################################################
+;,:,,,,:::;;;;;;;;;;:,,:;++++;;;;+++++++++*+++++++++++++++++++*********##**#***+++*++#########################################################################
:;,+;+.,::;;;;;;;;;:::,,:;;;;;;;;;++++++++++++++++++++++++++++++*****************+++++;########################################################################
;;:+++..::;::::;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++****************++++++#######################################################################
;;+++.  .:::;;;;;;;++;;;+++++++++++++++++++++++;++++++++++++++++++++****************+++;#######################################################################
;++;*   .,:;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++++*****************++++######################################################################
****+    ,:::;;;;++++++++++++;;++++++++;++++++++++++++++++++++++++++*****************+++;######################################################################
****+   .,::;;;;;;;+++++++++;;;+++++++++++++++++++++++++++++++++++++++**************++++;*#####################################################################
****+     .,;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++++++**************+;++;######################################################################
**++;   :. .,:;;:;;;;;;,++++++++++;++++++++++*++++;+++;++++++++++++++++*******+***+*+++;;######################################################################
*+:,.   ,.  .,;:.,;;:::::+;++;++++++++++++++++++++++++++++++++++++++++++***********++++;;*#####################################################################
+++;;.        .,,:::::,:::++++;+++++++++++++++++;;++++++++++++++++++++++***********++++;+######################################################################
+++++:       ....,,,,,:+++++++;+++++++++++++++++++++;;++++++++++++++++++**********+++++;*######################################################################
*+;++:     .  ...,,,,,;+++++++++++++++++++++++++;;;;;;;+++++++++++++++++******+++++++++:#######################################################################
++:,,.;         ...,,,:;++++++++;++++;;++++++;;;;;;;;;;;++++++++++++++++******+++++++;;+#######################################################################
+;+;+::.         .....,:+;++++;;;+;+++;:;:;;;;:::::;;;;;+++;;+++++++++******++++++++++:#*######################################################################
:++++;++         ......,,::;;;;;++;+++;;::::;:::::;;;;++++++++++++++*++++*++++++++++;:##*######################################################################
+;:+;++++:    ..........::;;;;;;;;;;;;:;;;::::;;;;;;;;++++++++++++++**+++++++++++++;;##########################################################################
+;:;;;;***;.   .....:,,,,,:;+;;;;;;;;;;;::::;;;:;;;;;;++;+++++++++++++++++++**++++;+###*#######################################################################
***+,:;+***+   ....,,.,::;::::;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++***++++++###**#######################################################################
********#+,++.  ....,,,,:;::;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++****+++++*#####*#######################################################################
**#******++++*+  .....,,,:;:;;++;;;;;;;;;;;;;;;;;;;+++++++++++++++++++****++++++####*#*########################################################################
******++*****+++; ....,,,,:::;;+++++;;;;;;;;;;;;++++++++++++++++++********++++#######*#########################################################################
**********+***++++;...,,,,::;;;;++++++;;+;;;+;;;++++++++++++++++++******++++########*##########################################################################
**********#*********+:,,,,,:::;;;;;;;;;;++;;++++++++++++++++++**++++**+++*#*###################################################################################
********************#***,:,:::;;;;+;;;;;++++++++++++++++++++++++***+*+*#########*#*############################################################################
******************##******++::;;;+;;;;+;;+++++++++++++++**********+*#############*#############################################################################
++*#*************************+++;+++++++++++++++++++**++********##########**####*##############################################################################
*++*******************####******++++++++++++++++++*******#################***#**###############################################################################
+++++++*****************####******##**++*****++*##########################**###################################################################################
+++++++;;*************+*######****##**********++*##############################################################################################################
#**++++:+::+**********+*++++**********####***++***#######################*#####################################################################################
###*+++;++;;;*************++++**####**#*####******#####################+#######################################################################################
######***+++++++*#****##**##****##############******############**##**#########################################################################################
#########****++;+++**++*********##******######****#############*###############################################################################################
#############***+++++++++++***+#**********##**################*#*##############################################################################################
#################**+*******+++++************##############**###################################################################################################
$:::::::::;;;;;++++++++++++++++++++++++++++++++****************++++++:+*########################################################################################
:::,.,:::;;;+++++:++++++++++++++++++*+++++++++****************+++++++;;**######################################################################################
::,,.::;;;;;+++;;;++++++++++++++++*+++++++++++*******************+++++;;+######################################################################################
::::;;;;;;;;+++;;;;;;+++++++++++++++++++++++**+********************++++++:#*###################################################################################
;;;;;;;;:::+++;;;:;;;;;;;+++++++++++****++******++******************+++++++*###################################################################################
;;;;;;;;;;;;;+++;;::;;;;::++++++++++**++++++******++++***************+++++++*##*###############################################################################
;;;;;;;;::;;;++;++;;;;;;;;++++++++++++++++++++++**++++**********##**#*+++++++*#**##############################################################################
;;++;;;:::::;;+++;;;;+++++++++++++***++++++++++++++++++*******######****++++++###*#############################################################################
;;+;;;;;::::++++++++++++++++++++++++++++++++++++++++++*+*****************+++++;################################################################################
;;;;+++;;;;;++++++++++++++++++++++++++++++++++++++++++++****************++++++;;###**##########################################################################
;;;++++;+++++++++++++++++++++++++++++++++++++++++++++++++++*****#**********++;;+*####*#########################################################################
;;++++++++++++++++++++++++++++++++;;+++++++++++++++++++++++++****************+++;*###*#########################################################################
;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*****************+++;#####*########################################################################
;;;++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++**************++++;*##*##*#######################################################################
;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*************++++;*##*##########################################################################
+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++*************++:;;+###***#######################################################################
;::;;;;;;;:;++++++++++;;++++++++++++++++++++++++++++++++++++++++********+++++++;;+######*######################################################################
;:;:;:::::;,;+;+++++++++++++++++++++++++++++++++++++++++++++++++********+++++++;;*######*######################################################################
,,,;:::::::;:+++++++++++++++++++++*+++++++++++++++++++++++++++++*********+*+++++;########*#####################################################################
,,,:::,,::++++++++++++++++++++++++++++++++++;+++++++++++++++++++********++++++;+:##############################################################################
..,,,,,,:;++++++++++++++++++++++++++++++;+;;;;++++++++++++++++++++****++++++++;;+##############################################################################
..,,,,,,:;++++++++++++++++;+++++++++;;;;;;;;;;;+++++++++++++++++******++++++++;:###############################################################################
  ....,:::;+++++++++;++++++;:;;;;;;;;;;;;;;;;;++++++++++++++;+****++**++++++;;;+########*######################################################################
  ......,,,,;;;+;;;;+++++++;;:::;;;;;;;;;;;;++;+++++++++++++******++*+++++++;;:#########*######################################################################
  ..,,.....,:;:;;;;;;++++;;;;;;;;;::;;;;;;;;;;++++++++++++++*********+++;+;;::#****############################################################################
......,,,,::::++;;;;;;;;;;;;;;;;::;;;;;;;;;;++++++++++++++++**++++++++++++++;#*****####*#######################################################################
.....,:,,,:,:::;+;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++****######**#######################################################################
....,,,.,::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++*############*#######################################################################
.....,,:,,:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++**++++***++++++*##########*#*########################################################################
 .......,,,:;;:+;;++;;;;;;;;;;;;;;;;;;;;++++++++++++++++**++++***+++++++#############*#########################################################################
  ....,,,,,,::,:;;++++++;;;;;;;;;;;;++++++++++++++++++++********++++++#########################################################################################
#+....,,,,:::::;;;;;++++;;++++;;++++;+++++++++++++++++********++++++###########################################################################################
**#*,,.,,,,,,::;;;;;;;;;;;;;;;++;;++++++++++++++++++++++++++*++++*##############*#*############################################################################
*******:,,,,::::;;;;;;;;+;;;;+++++++++++++++++++++++++****++++**############*####*#############################################################################
+++******#;:::::;;:;;;;;;;++++++++++++++++++++++++********+*################*###*##############################################################################
**++**********+:::;;+++++++;;;++++++++++++++++++**********#################**#**###############################################################################
++++++;+***********+;+++++++++++++++++++++**********######################****#################################################################################
++++++++;+******************++++++++++*********++*#############################################################################################################
#**++++;:+::+*********#+++++++*********#####**++****#####################*#####################################################################################
###*++++++;;;+**************++++**##**##**###*#*****###################*#######################################################################################
######*++++++++++#**********##****#############*#***############**##**#########################################################################################
#########****++;+++***++******######******#####*****###########*###############################################################################################
#############***+++++++++++*+**+##********####################*#*##############################################################################################
#################**+++*****++++++*****##****##########*###**###################################################################################################
$+++;++++++++++++++++++++***++++++++++***************#*++++++;;:#****#**########################################################################################
++++++++++++++++++++++++++++++++++++********************++++++;;+*##*##**######################################################################################
+++;;:;;++;+++++++++++++++++++++************++*************++++++;*#####*######################################################################################
+++;;;;;;+++;;++++++++++++*****+********++******************+++++++#*#**#***###################################################################################
+++++;;;;;+;;::;++++++++++**++++++++********++******##*******+++;+++**##**#####################################################################################
++++;;++++++++++++++++++****++++++++++++**++++**********##****+++;+++*######*##*###############################################################################
;;++;;++++++++++++++++++****+++++++++++++++++++*******####****#*++;+++##########*##############################################################################
++++++++++++++++++++++++++++**+++++++++++++++++*******####******++;++++*#########*#############################################################################
++++++++++++++++++++++++++++++++*++++++++++++++++****************+++;;;;###########*###########################################################################
++++++++++++++++++++++++++++++++++++++++++++++++++****************+++;;;**#########**##########################################################################
+++++++++++++++++++++++++;+++++++++++++++++++++++++++***************++;;+############*#########################################################################
+++++++++++++++++++++++++++++++++++++++++++++++++++++***************+++++*###########*#########################################################################
+++++++++++++++++++++++++++++++++++++++++++++++++++++****************+++++**##########*########################################################################
++++++++++++++++++++++++++++++++++++++++++++++++++++++********++*****++++;**########*##*#######################################################################
+++++++++++++++++++++++++++++++++++++++++++++++++++++++*******++++***+++;;***#######*##########################################################################
++++++++++++++++++++++++++++++++++++++++++++++++++++++*********+++**+++:+;****#######***#######################################################################
++++++++++++;+++++++++++++*+++++++++++++++++++++++++++++*******++++++++;;:*****#######*#*######################################################################
++++++++++++++++++++++++++++++++++++++++++++++++++++++*********+*++++++;;:##**##########*######################################################################
+++++++++++++++;++++++++++++++++++++++++++++++++++++++++*********+++++++;+##**###########*#####################################################################
++++++;+++++++++++++++++++++++++++++++++++++++++++++++++*******++++++;++;*#####################################################################################
++++++++++++++++++++++++++++++++++++++++++++++++++++++++******+++++++;+;;######################################################################################
++++++++++;++++++++++++++++++;;;++;;++++++++++++++++++********++++++;;+;+*#####################################################################################
++++++++++++++++;;+;++;+++;;;;;;;;++++++++++++++++++++*****+:++++++;;;;;################*######################################################################
;+++++;;;;+++++++;::;;;;;;;;;;;;;;++++++++++++++++++******++**+++++;;;+***##############*######################################################################
:;;+++;;;+++;;++;;;;;;;;;;;;;;;;;;;;++++++++++++++++*********+++++;;;;****######****###########################################################################
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++*******++++++++;;+######******#####*#######################################################################
;;++;;;;;;;;;++;;;;;;;;;;;;;;;;;;;++++++++++++++++****++++*+++++++;;+#######****#######*#######################################################################
;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++++++++++++++*+++++++++###########################################################################################
::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++**++++++++++++++++####################*########################################################################
::;;++;;;;;;;;;;;;;;++;;;;;;;;;;;+++++++++++++++******++**+++++++####################*#########################################################################
;;+:;++;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++****++***++++++*###############################################################################################
;::;;+++++++;;++++;;;;;+;;++++++++++++++++++++**********+++++*#################################################################################################
:;;+;;;+++++;;++++++;;++++;+++++++++++++++++*********++++++*####################*#*############################################################################
:;;;;;;;++++++;;++++++++++;;++++++++++++++++****++++*++++***####**###############*#############################################################################
::;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++**++++******################*###*##############################################################################
::;;;;;;;;;;;;;+;;++++++++++++++++++++++++*******++*########################*#**###############################################################################
:::;;;;;;;;;;;;;++++++++++++++++++++++**++******++#########################***#################################################################################
;:::;;++++++++++++++++++++++++++**++************++**###########################################################################################################
#*++++++++++++++++++++++++++**************##****+***#####################*#####################################################################################
###*+*++;++;::++++++++++++**+++++*******#*######****################**#########################################################################################
######++++++++;+++****************##############*****############**#**#########################################################################################
#########*****+;++++**************##**##**######****###########*###############################################################################################
#############***+++++++++++++*****##******####################*#*##############################################################################################
#################**+++******++**++**********#############**####################################################################################################
$