:!- ,!~;~ ~:::::::::::::::~~~~~~~~~~~--------,,,,,,,
:!- .!~;: ~:::::::::::::::~~~~~~~~~~---------,,,,,,,
:!~ ,!~;: ~:::::::::::::::~~~~~~~~~----------,,,,,,,
:!~ ,!~;: ~:::::::::::::::~~~~~~~~~~---------,,,,,,,
:!~ ,!~;: ::::::::::::::::~~~~~~~~~----------,,,,,,,
:!~ .!~;: ::::::::::::::::~~~~~~~~~----------,,,,,,,
:!~ .!~;: ::::::::::::::::~~~~~~~~~----------,,,,,,,
:!: .;~;: ::::::::::::::::~~~~~~~~~----------,,,,,,,
:!: .!~;: :::::::::::::::::~~~~~~~~~---------,,,,,,,
:!: .;~;; ::::::::::::::::~~~~~~~~~----------,,,,,,,
:!: .;~;; ::::::::::::::::~~~~~~~~~~---------,,,,,,,
:!: .!~;; ::::::::::::::::::~~~~~~~~~--------,,,,,,,
:!: .!~;; ::::::::::::::::::~~~~~~~~~---------,,,,,,
:!: .;~;; ::::;;::::::::::::~~~~~~~~~----------,,,,,
:!; .!~;; ::;!**!;;:::::::::~~~:~~~~~~---------,,,,,
!**-,. .;~;; ;!=====*!;:::::::::~~~~~~~~~---------,,,,,
$$$===~. .;~:; .*======**!::::::::::~~~~~~~~----------,,,,
$$$$$$=*, .!~:; *========***:::::::::~~~~~~~~~---------,,,,
$$$$$$=*: .;~;; ,*=***====***;:::::::::~~~~~~~~----------,,,
$$$$$$*~ ..... ..... !~:; *=***!**!*=**!::::::::::~~~~~~~----------,,,
$$$$$$~. ..!===*;-. .****!:. !~;; ==**!!!!;;==**:::::::::::~~~~~~~---------,,-
$$$$$=:, ,;*=====*;:. ,*==**!;~..!:;; ****!!**!:****:::::::::::~~~~~~~-~--------,~
$$$$$=;-. ,=$$$$=$==!~~ !**!!*=**:,!:;; *****!*!!;*=**::::::::::::~~~~~~~----------:
$$$==*:~ ~$$$===$===!~. :*!;;*==**:!:;; =****!!*!;!***;:::::::::::~~~~~~~~---------:
$$****;, ~$$=**=$$=$=~- :**!;*===*!!:;; !****!!!!;:**;;;;:::::::::~~~~~~~~~--------:
$$****!~ .$$****=$$$$*~ ~**!;;==***!:;; .!***;!!!;~:!;;;;::::::::::~~~~~~~~--------:
$==***!:. $*==**=$$$$=:, ~;*!;~:!;;!!:;; !****!!!;::;;;;;:;:::::::::~~~~~~~~--------
=====*!~ $*==**=$$$$$!- !;*!;:~~;;:!:;! *****!!!;:!*;;;;;;;::::::::~~~~~~~~--------
===$$=!, =!*=**==$$$$*- !***;::~~;.!:;! .!**=**!;;:*!;;;;;;;;;:::::::~~~~~~~~-------
$==$$$*. **!*!***=$$$=~ -=**!;:~-, !:;! ~;****!!;;;!!;;;;;;;;;;::::::~~~~~~~~-------
#$=$$$=, ;********$$$=~ .***!!;~, !;;! ,-:;!***!!!!;!*;;;;;;;;;;;:::::::~~~~~~~------
###$#$=!,. -!**=****=$$=~ ;*!!!!~- !;;! .!;::;*==***!!**!;;;;;;;;;;:::::::~~~~~~~~~----
######$=;;. -*====**=$*! ***!;~:-.*;;! .:;!:~;!*===!**=*!*!!!!;;;;;::::::::~~~~~~~~----
######$$;*~ ;******!!- ***!:;=*;!;;! ,:::!!:;=*=************=*!;;;;;:::::::~~~~~~~~---
#$$###$$!*! .*====*- ,~==!:!===!;:;! ,;;;::*!*==***=**==***===****;;;;:::::::~~~~~~~-~~
#$$###$#**;. ====$$;, .,-=$**:!$$$=**!;;..!!**;;=====******==*=====****!;:;;:::::::~~~~~~~;!
$#$###$#**!: $$=$$$$$- ,;==$===!$$$$$===*!-:**=**======******==========***;::;;::::::~~~::;!**
$#$####$***=- ,#######$=- -=$=$$==$$$$$$$=$$$*!;*==*=====$=******==========****;:;;;::::::::!****!
#$##$##$==$$*-,*######$$$$-,=$$$$==$$$$$$$$$$$$==!!=========*******==========*****:;;;:::::;!*******
##$$$=$=$=$#$$$#########$$$$=$$$$=$$$$$$$$$$$$$==*;==$=$=$==******=============***!;;;;;:::!********
#$=*!:!===$###############$#$$==$=$$$$$$$$$$$$$===;$=$=$=$==******==============**!;;;;;:::*********
#=*!!;;$$$####################$*=$$$$$$$$$$$$$$==$*$$$$$$$==******===============*!;;;;;;:!*=*******
#$$==**$#######################==$$$$$$$$$$$$$$====$$$$$$$$=*****=================!;!;;;;;*==**=**=*
##$=$$$########################$=$$$$$$$$$$$$$$====$$$$$$$$$*****================*;;;;;;;;=========*
##$$#$$########################$!#$$$$$$$$$$$$$$====$$$$$$$$=****================**!;;;;;;==========
################################*$$$$$$$$$$$$$$$=$=$$$$$$$$$****===$=====$=========!;;;;;;==========
##############====##############$=$$$$$$$$$#$$$$=$$$$$$$$$$$=***==$$=====$$$=$======*!;;;!==========
############$=;:;;##############$=####$$$$$#$$$$=$$$$$$$$$$$==**=$$========$=$$$=====*!;;!==========
###########$***;;;###############*###$$$$$$##$$$==$$$$$$$$$$==**=$$$$$$$=**=$$$$=====*;:!*=========*
###########*==*!;!###############=####$$#$$##$$$==$$$$$$$$$$==*==$$$$$$$*!!*=$$=$$====!:*====$======
##########$*==*!;*$##############$####$$$####$$$$=$$$$$$$$$$====$$$$$$$$$*;!=$$=$$=$===*===$=$$=====
##########===$=*;!*$#############$$##$$###$##$$$$$$$$$$$$$$$=$$=$$$$$$$=$=**$$$$$$=====$$=$$$$$$$===
###########$$$$$*;**$############$$###$#$#$#$$$$$$$$$$$$$$$$$$$$$$$$$$$=$$$$$$$$$======$$$$$$$$$$$==
#############$$=****=#############$###$#$#$##$$$$=$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=====$$$$$$$$$$$$$$
##############$$====##############$###$$$#$##$$$$=$$$$$$$$$$$$$$$$$=$$$$$$$$$$$$$$$==$$$$$$$$$$$$$$$
###############$$$$$##############$#######$##$$$$$$$$$$$$$$$$$$$$$$*=$$$$$$=$$$$$$$$=$$$$$$$$$$$$$$$
##################################$#######$##$$$$$$$$$$$$$$$$$$$$$$===$$=$$=$$$$$$=====$$$$$$$$$$$$$
##################################$#######$##$$$$$$$$#$$$$$$$$$$$=========$$$$$$$$$=*!==$$$$$$$$$$$$
#############################################$$$$$$$$#$$$$$$$$$$=====$=$$$$$$$$$$===****$$===$$==*==
###########@##############################$##$$$$$$$$#$$$$$$$$$$=====$$$$$$$$$$$=*=#=***$$$==$$$=*!!
$#########@@##############################$#$$$$$$$$$$$$$$$$$$$$$$=$$=$$$$$$$$$$**$$==**=$$==$$==*!!
=$$$#########################$############$##$$$$$$$$##$$$$$=$$$$$$$$$$#$$$$$$$==*$$$$=*=$$=====***!
$#$$#########################==###########$##$$$$$$$$##$$$$$==$$$$$$$$##$$$$$$$$=*$$$$=!===**=*****!
##$$$=$######################$=#############$$$$$=$$$$#$#$$$==$$#$#$####$$$##$$$==#$$$=**==**====**!
###$$$*$#####################$=#############$$$$$==$=$#$#$$$===$$$######$$####$$==#$$==**$=========*
#####$=*$#####################$$###############$$$$=*==$$$$$====$$#######$####$$==#$$==*!$$$$=======
#####=$=*$####################$$##############$===*===;;*$$$====$$$$##########$$==##$==*!#$$$$$===$=
#####$==**####################$$########$##$==*!;;:!;*;.-$$$===$$$$###########$$$$##$==**##$$$=$$$$$
######===*####################$$##########$=!!;;;;;~ ~!- :$$$$$$$$############$$####$=$==##$$$$$$$$$
######$$=*####################=#$####$$##$=*!!!!:!!~. -~. $$#$$$###$###########$####$$######$$$$$$$#
######$#==####################=#$####$$#$$**!*!:-*!;-. ~, :$$$$$$$$#$#######################$$$$$$$#
########==###@################$#$#$##$$#$=;!!!!~,~!;:, ~~ $$$$$$#$#########################$=$$=$##
#######$$=$$############################$!;;!;*::::;:,,.!, $$$#$$####$#####################$$=$==$##
#######$==$$$$$#########################$!;:;;=;;*:;:~~.:- $$$#$###########################$$$$$$###
#######=*!$$$$$$$#######################*;::;!!;;;:;;:~-.~.=$$#$###########################$$$$#####
#######!$!$=======$#####################!;:;!!!:::;;;:~~.!.*=$$$$$$$$$$$$$#################$$$$#####
######$!$$$$$$=====$$=##################!;;!!****!;!;:~~,=:*=======$===$$$$$$$#############$$$######
######=!$$#$##$$$$$$$!#################$!;;!!=====;*;::~,~!=$$$$$$$$$$$$$$$$$=#############$$$######
######$*###$$$#$$$$##=################$=!;;;!*!;;;;!;~:~-.:$$$$$$$$$$$$$$$$$$=#############$$#######
#####$=$####$##$$$$################$##***;:;;;;:::::;::~~,:$$$$$$$$$$$$$$$$$$$#############$$#######
#$$$$=*$#########$#$$$$$$$$$$$$$$$$$##!**!;;;;;;;:::::~:~--$$$$$$$$$$$$$$$$$$$$############$$#######
$$$$=*!=####$####$#$$=$=======$$$$$$#$!=*!!!;;:;:::~~:::~--$$$$$$$$$$$$$$$$$$$$#####################
#$$$*=;=#########$#$==============$$#$****!!!;;;;;;:::::::*$$$$$$$#$$*$=;!=!$$=################=####
$$#$*$*$#$$######$#============*==$$$$=***!!!;;;;;;;:::::!#$$$$$$$$$$!==:~*~;=;!***=#####@####$;!###
$=$===$=$$$$$$####$=======*=*=$=*=#$$$$=$*!!!;;;:;::::::;=#$$$$$$$$$$==$=!!:-=-:!!;;!;;!#@=$$#$*!#@#
===$$==*=$$$$$####$=======****==*=#$$$$$#=*;;;;:::::::::;##$$$$$#$$$$#$##$!;~=-;==;:;:~~$$!**==***!;
*=*$#$***$$$$$####========*******=$$$$$$$$*;;;;::::::::~:##$$$$#$$$#$#####*;:=~:**;!*!;!$$!====*!;::
**!$#$**=$########=======******=*=$$$$$$=$*!;;;::::::::~;###$$$$$$$#$#####$*!$::*;;*==*=$$!####$$===
$!=##$*=$#########=======******==$$$$$$==$*!;;;:::::::~~*###$$$$$$$$#######$$#;;*;!=$=*$$$!#########
$=*##$$$##########=======*=*****=#$$$$$$!=!;!;;::::::--,~==$$$$$$$#$#$######=$*=!!*$==*$$*!#########
$$!=**$##########$=========****=*#$$$$$$*$::;;!;:;~~-,,.-~=$$$$$$$#$$$######$$==;!==$$;$#:!#########
#$*;;:!##====####$=========****==$===$$$=$::::;**=-,,,,.:.~$$;::~:~~~~=$####$$==!*==$$!$$-!#########
##=~~:~=$===*=$##============*===$====$$$$;:::=$==!...,,!. ~~..,,--,. -~~~:##$=$**====;#$-!#########
#$$;;;;!***=*$$$#=============*=$$$$$$$$$$;::=$$*;=....:=. ..,,;!**!!;;::;~:#=$$*!*==$*#$-!#########
#$$=*;!!**===#$$#$$=$$=====*==$$$#$$$$$$$#!::=#$*!$:...*$!;!!!*$$$$$$$$$$$*-*=#$=*$$##$#$:!#########
##$$!!;!***$$$=###$###$$$=$$$$$$####$$#$$$=:;**=*==!..~=$$$$$$!$#####$$$$#=;~$$$$$$$$$=$=!!#########
###=*=****$##==$#######$$$$$##$#########$#$;*!!==**!:~;*$$$###=#######$$##$!-=$$$=*==*$$=!*#########
###=$###$$$==*=$$######$$###############$$$!!!===!*:!;;*$$############$$##$*~!###$$$$=$**!=#########
#$#=#####$=****=$$$$$$$##################$$!;*=*=!*::!!*$$#############$##$=;*$$$$$=$=$**!$#######@#
#$=$@###$==***!*=$$$$$$####################!;=*=$=*;~;!=$$#############$##$=**$##$$$=$#$=!########@#
##=$$#####===!!*=$$$$$$####################!*=====!!::;=#$#############$##$$=:=##$$#=##$*!##@#####@#
##$$=#####$$==!$#$$$$=$###################$!========*:;=$##############$###$=:$##$#$$##$!!###@####@#
###=$#$#$$$$$$$##$$$$$####################$!======$==::*$##############$###$=*$#$#$$###$:!#@#####@@#
###=$$#$##$$$$$####$$######################*===*=$$$$::*$##############$####$=!;##$#####~!##@#@###@@
###$=$#$##$#$$$====***#####################=====$$$$=;:=#$#############$####$=!;:#######~*==$######@
####=##$$#$#$##====***#####################$======$=$;:=###############$####$$*=!:$==$*=;****=======
####$##$$#######$$$$$$#####################$=====$=$$;:=#############$$$#####$==#;~;;;;!!!*!********
#######$#############$######################===$$==$=;:=#############$$######$$*#$;::;;!;!!!*!*!*!*!
######$$####################################==$$==$$$!:=##############$$######$=##=~;;!!!!!!!!!;!!!;
##@#########################################$$$==$$$=*:*##############$$#######$###:**!!!!;;!!*!!!!!
############################################$$==$$$=$=:!##############$$##$$####$##****=******!!!!!;
############################################$=$$$$$$$=;!##############$$@##=$###$##=!$==**********;:
##@#########################################$$$$$=$$$=;;##############$#@###=###$##$~****===$$=***;:
#@########################################$#$$$$=$$$$$*;################@####=#####$:*******!****!;:
#@########################################$#$$$=$$$$$$!*################@#####$#####!$$====******!!;
#@########################################$#$$=$$$$$$$!=################@######$#$##!#######$$$====*
#@########################################$#$$$$$$$$$$!=################@@######=###*##############$
#@#######################################$$#$$$$$=$$$#;=$###############@########*##=$##############
###@######################################$#$$$$=$$$$#;==################@####@##$$#$###############
#@#@######################################$#$$$$$$$$$#;**################@#####$####$$##############
!@@@########################################$$$$$$$$$#;;=################@@###$##*#$$$##############
==@@##@#####################################$$$$$$$$$#!;*################@######=*!#$=##############
$$#######@################################$#$$$$$$$$$#*;!$###############@@@@@###=:*#=##############
$$$#####@@################################$#$$$$$$$###*!;!###############@@@@#####=!!=##############
$#$#@##@@#################################$#$$$$$$#$#$*!;!=##############@@@@######$;$##############
$#######@@####@###########################=#$#$$$#$$$#*!!!*##############@@@##@#==$#$*##############
$###@#@@@#@##@###########################$=#$$$$$$=$$#=!!!!$#############@@@@@##$###$=*#############
$####@#@##########################=*!####==#$$$$$$$$$$$*!!!*###########@#@@@@@###$####$$############
$####@##########@################=*!~~~~~~~$$$$$$$$$$$$**!!!$###########@@@@@##@@###@=##############
$####@########################$*=**;-~~-~-~~$$$$$$$$$$$***!!*#########@#@@@@@@@#!**$###$$###########
$@####@######@###############=#**!*!~~~~~--,$$$$$$$$$$$=!!***#######@##@@@@@@@@#$*:;;#$$############
$@###########################==***!*~------~$$$$$$$$$$$###***=@#####@##@#@@@@@#$$*;~~;##############
$###########################!==*!;*=~--,,--*$=$$$$$$$$$#@@##==#@@#@#@#@@@@@##$$##===~~;#############
$@#####@##@#################;==*!!$$:-,,--~#=$$$$$$$$$##@@@@###@@##@@@@@@@####$!$####;:=############
$##########@####@##$########!==*!!=#:!;:;-;#$$$$=$$$$$$@@@@@@@@@@@@#@@@@@@#@@#*#*!=##*;*############
$#####$####@###@#@$$########!$=**!*$;~:~~-~##$$$$$$$$#######@@#@@#@#@@@@@@@@@@#*!;!!=*!$############
$#####$#####@#####$$$#######!#$=**!!!!!;:~:###$$$$$$@####@#@@@#@@@#@#@@@@#@@@@$!!!!!!***############
$#####$#####@@###$$$$$######=*$**=!!!!!:~:**#####$#####@@#####@@@@@@@@@@@#@@@$*!!;!!!*#############$
$###########@@@@#===$$#######===***==**;~!;#######@@@@@##$$*$=@@@@@@@#@@@@@##*!!!;;!!!##############
$####$######@####===$$#########$==***!!!!**########@#####$!!*=$$@@@@@@#@@@##=*!!!!!!!!;#############
=$$$$###########$====$#######@##==========###@##@@#=$###=;!!!*=$$#@@@@@@@@$$*!!:!!!!!!;########=####
$########@######$====$###########$==$===$########=****!;;;;;!!*$###@@@@@@@$=!;*~~!-!;!;=###*########
$######$######@#====$$#########@@##===$###@@###==**!;;;;;;;;;!!*$##@@@@@##$=!***--~!-~;*#$!;#=##@###
$######$#@@#####====$$#####################@@#$$$==*;;::;;;;;;;!=##@@@@@##$**::!~~:*:*:;=#####@=####
$######$##@#####====$############@################$=*;;;:;;!!;;!!$#@@@@@@$$*!$:!;!!!!*!!######;!####
$######$##@###@#====$############@########@#########$*!*$!;!!!!!*$#@@@@@@$=!!#==;!*!!*=*######*#####
$######$#@#@@@##$===$###########@####################$==*$=!!****##@@@@@@$*!=$$#;!=***!*#######$$###
$######$###@#####$$$##################################*=$=#$====$##@#@@@@=!*$$$#;!==*=;=#######$#$##
$@#####$###@###@@$$$##################################$$$$$#$$$$$##@##@@@$=$$$##;!=**!!#######$$$###