-------,,,,,,,--#################################@/,,,,,,,,-----------=-=--=--
,--,,,,,,,,,:H@####################################:-,,,,,,,,,-,--------=---=-
-,,-,,,,--@X#######################################+:,,,,,,,,,-,--------------
-,-----%==;########################################%-=,,,,,,,,-------------:--
---,-;==:/####################MMHHM#@##############@/,=,,,,,,,-,--------------
---,M:-=%#################@@$%+H$XH@HX##############%=/,,,,,,,,---------------
---H=::#################@#M@@HM######################+=,,,,,,,,---------------
---@/M###############################################@=-,,,,,,----------------
--;###@%#################@+=,....,,,,=;+///XH#########$-,,,,,,,,,-------------
:####X:$##############@X$+//,.,,=;/::--,==@%%%##########-,-,,,,---------------
####X;;#################H/:;,,.,-=-=:=;;=:;/++@##########---,,,-,-------------
####H%:################H%X-/-..==.@.M##,M$;//+@###########:---,,--------------
##%;X;%###############H%=-;;,,,:-..,===:::=:/%#@@##########X-,----------------
######################$%//;-.,-=-......,,-=:/%M#%###########;-----------------
####################M#HHH+=...-::,.......,=:%H@M%H####@######=-,-----------===
######################HX@=/,.,==:=......-:;%X%+@@#####$@#####:--------=-------
######################HH%:-....-,.....,-:;+$X/$#######;#####H/---------------=
#######################M%;--..,.,...,--::/$##########;#####X;:=--------=---===
##############################M$:-,--=:::+################@/:------=-=-=--==-=
##########################=%%XXXH-=-=:::+@####################%===--==-=---=--
#######################@%;===::====::;+$$H@#########MMMM###########M=====-====
#######################H+=,,..,-=:;/X$%%$$HM#MM@@@HX$XXM######HH@@@###X=======
########################@/;====;%$%+%%//++$XHXX$$$///+/#####@HHHHHHHHH@##+====
##############################HX$%++/+////++$+$+//;;::X#####$$$X$$$XHHHHX##M==
###############################@X$$$++//;/////::::::=:#####$+/;;://+/+++%$X###
#################################@HX%+++////::==:::::;#####;;/;;:::::/;/+%$XH#
##################################MHX$$++////::/+//---#####H//;;:--===::;/+%$X
###################################MMMX$+/;:;++;=----=%#####/;;:==---===::/+%$
###################################HM#@$%/++/:=--,,-,,=#####/;/;==---====:;++%
####################################H##H%++/::=-,-,,,,=#####///:==--==-==:;/+%
######M@###########################H@@##%%+/;::=----,--@####//;:==-----==::;/+
###M%###############################M@MMM@$%+;:====---=;####;/;;==----====::/+
#%H#HH##XX##########################M#M@@@H$$/;;::======####X//;:==========:;/
%+//$XX$XX#@@########################MMM@HHX$++;;;::::::;####%//;:=====:===;;+
/+%+++/%%X@HM##########################MM@@HX%++//;;;;;//+####H+//;:::::==:://
%%%%%%%%%%$XH#########################M#####@H$%//;;;;;//+$@###M$+/::;::::/:;/
@@@@@@@@@@@@##################################H$+/;;:::;//%HM###X%/;:;::;:;:;:
MM@MMMMMMMMM@###########################MMM###MH%+;::::::/$X#####++;;:::;::::;