######$$$$$$#$$$&&&$$$$$###@#@@@###########$########$&%?:-*:+%%%%&&&&&%!+%&$$&$&
###$##$$$$$$$$$$$$$$$$$$################$$$&&$######$&%=:-+?=%&&&&&&&%?,:%&&$$&&
##$$$$$&$$$$$$$$$$$$$$$################$$$$$&&$$$##$$$&&==??=%=?%%%%%%=++=&&&=&$
##$$$$$$$$$$$$$$$$$$&&$###############$$$$$&&%&&$$#$$#$$&%=?=??=%%&&&&%+!?%&=!&$
$$$$$$&$$$&$$$$$$$$&&%&##############$$$$$&&%===%&$####$&%=+:~=%&&&&&&%+':=%&&$$
$$$$&&&&&&&&$$$$&&&%%$############$$$$$$$&&%=?++?=&###$$&=*~:!=%&&&&&&%?;?%&&&&$
$$$$%%====%&$$$$&&&==############$$$###$&&%=?+***+=###$$&?-.;=%&&&&&&&&&&&&&&&&&
$$$$%=+*++?%&$$$&&&%$############$$####$&%=?+*!!!*%###$$%?+*?%&&&&&&&&%&&&&&&&&&
$$$$%+;.:;*?&&$&%&&&############$#######$&%+*!;;!*&###$$%====%&&&&&&%;*%&&&&&&%+
$$$$&*-`.-!+&&$&%&%$#################$$&%=&&?!;;;!&##$$&=?=%&&&&&&&&?~!%&&&&&&%%
$$$&&=;.,;+?&&&&%&&$###############$$$$$%??=%?;:;+$#$$&&+,*%&&&&&&&&%=%%%%%=%*?%
$$$&&&%++?==&&&&%&$$###############$&&$$&?=??*:!=&#$$$&%?+=%%&&&&&&&&&%&%=?+*~!=
$$$$$&&%=%%%&&&&%&$$##$$###########$%=%&&&%=%*!?%##$&&&%==%%%%&&&=%&&&&&%%=+,.+=
#$$$$$$%=%&%&%%%=&$###$$###########$%?*+???=%*+&$#$$&&&%==%%&&&%=+%&&&&&%&%=**=%
###$$$$&%&&&%%=!:%$###$$###########$&?*;:;!?=+*%#$$&&&%%==%&&&%%%%%&&&&&%&&%%%%%
#$#$$$$$&&&&%%+,'*&####$###########$%?*;::!?=+;?$$$&&%%=====%%%=%%%==%%%%%%%%&&&
#$$$$$$$$$$&&%?:~*$####$$#########$$&=+;::+%&+:?#$$&&%%%===?=++====?+*!+=%%%&&&&
#$$$$$$$$$$$&&%?+=######&$########$&&=+!:;===+-%#$$&&&&%====?*?%%=*:*:';?%&&%%?=
&&%%%%==%$$$&%=*;%######$&########$&&=?*;!++*!+#$$$&&&&%===%%%&%===+?+;*+%%%%+.:
%%%%%%%%&$$$&%=++########$$#######$$&%=??+**!+$#$$$&%%&%===%%%%%%%===+:!+?%%%=*?
&&&%%%%%%&$$&%%%$########$$#$$#####$$&%$$&=??&#$$&&&%=%%===%%%%%==?=?*,;==%%%%%&
&&&&&&&&%&$$$&&$##########$#$$$$$$##$$$##$%==##&&&&&===%===%%%%=*:+=%===%%%&&&&&
&&%%%%%%%%$$$$##############$$$$$&$#$$####$&=%=;%$&%=?=======%%?;.*=%%%%&&%&&&&$
$$$$$$$$$$$$$###############$$$$&&&$###$&&$%?*:!&&&%==?====??===??=%%%&&&&&&&&&&
#######$$$$#################$$$&&&&####$&?+!;!*?%&&%==??===?+++?==%%%&&&&&&&&&=%
####$$$$$$$&&&&$$$#######$$$$$&&&&$####&=+*+%&&$&====???=??+*::*?=%%&&&&&&&%$&!-
###$$$$$$&%==%%&&$$$$$$$$$$$$&&&&$##$$&=???;--*&$$%?????????!.~*+?=%%&&&&$&&&=:;
###$$$$$&%%=====%&&&$$$$$$$&&&&&&$#&===?*!;;::;?%&$$%?++?=??+*!**+?%%&&&&&$&&??=
###$###$&%=?++??=%%&&&&&&&&&&%&&&##%***!**!*+%%&%=?%$&=*++++*++*,-+=%%&&&=&$&=%&
&######$&%=+**+??=%%&&&&&&%%%%%%&##$+!;!;:-:-+&%%%=+=&&%?;::-!**-:?=%%&%%%&$$&&&
&$######$&=?+++??==%&%%%%%%=====&$##+;:::;:::-?%%%==??=%+.~..:*+??=%&&&&$$$$&$$$
&&$#####$&%=?????==%&&%====???==%###$%!------!?%%%%%===?+;:''-*?==%&&&&$$$$$$$$$
&&$#####$$%=????====%%%%==?=????%#####%;:!*?!*%&%%%&%===+!-'':*?=%%&&&&&&$$$$$$$
&&#######$&%=???============%===$#####$+*%&$&%&&&&%&%%+~''````'.-?&&&&&&$$$$$$$$
&$######$$&%=??==%%%%========%%%######$??&&$$&=%$&&&%%;.'``````'.:&&&&$$$$$$$$$$
$########$&%==?=%%%%%%======%#$$######&*&&&$$$&%%&$&%&!~,.''''.,,;%&&$$$$$$$$$$$
$########$$&&===%&&&%%%====%##########%?$&&$$$$$&&&&%%?;--~~~~-:;;~?$&&&$$$$$$$$
#########$$$$&%%%$$$&&%%==%$#########$%&$$&&&&$$&&&%%%=?**!!!!**+?+?=%&$$$$$$$$$
#########$$&$$&&&$$$$&&%%%$########$$&$$$$&$&&&$&&&%%$&%===???===!---;&$$$$$$$$$
#########$$&&&&&$$#$$$&%%$#########$&%##$$$$$&$&&&%&&$$&&&&&%%%%%**+?=$$$$$$$$$#
##########$&&&&&$####$&&$##$$$##$$$$$&%$#$$$$$&&&%%&$$$$$$$$$$$$$&&&&&$$$$$$$$$#
############$$&$$#####$$####$$$$$$$$&$$&%&$$$$$&&%==%%$####$$$$$&%?!--=$$$$$$###
$######$$$$&&&&$########$$$###$$$$$&&&&&%==&$$$&%%===?&#######$?*!!!*+%$$$$$####
$########$&&&&%&$########$$$##$$&&&&&&%??=%%$$&%%==%==$########&%&&&&&$$$$######
&##########$&&&&&$########$$$$#$$$%%&&=+++=$$$%%%%&%==%$#####$&&%?*!!?#$$#######
%############$&&&$##########$$$$$$&&%=**+?&&&&%%%%&%%&?=&$&$$$$&&&%%&$$$########
$#########$$#################$&&&$$$&?!!+%$$$$%%===&$$*~+??%&$$$$##&=$$$####$$$$
#############$$&$##############$&&$$$&=+=$&$#$%%%%$###$*+?=%&$$&&$$&&$#$#$$$$$$$
################################$$&&&&&&&&&#$&$#$$#######&%&&$$#$$%&##$$$$&$==$$
#########@#####$$#################$%%&&$&&$$$$$$################$&%&$$$$&=+??+?%
####################################$&$$&&$$$$$##################&%&$$&+??*!=*+%
############################$$###&%%#$$$$$$$$$##################$&%&$$$$$$%+:?&#
#########################$$$#$&$#$%=&&$$$#$$$####################&%&$$$$$$$$$$$=
#############$$$##########$$$$$&$#$%%&$$##&$#####################&%&$$$$$$$$##$=
##############$$$$#########$&$$$$$#$&%$###$######################&?&&&&&&$$$####
##########$&&$$&&$####$$####$&%$####$&&##########################&=&&%%&&%%&####
###########$&&&&$#$$$$&$$#####%%#####$$#########################$$%%%%===%$$####
#############$#####&#$$##$$###$?&###$$$########################$&%%=====%&$#####
###################$$$$###$&##$==$##$$########################$&==??====%%%&$$##
############$#$#$$##$&#####$&&&&&&$$$$########################$%????==%%%%%%%&&%
###########$####$&$$$$##########$$&$$#########################$&%====%%%%%=%%%%%
##########$#######$$$$############$$$########################$&&&&&%====%%%%&&%%
#########$$##########$######################################$&&&&&&%%=?=======??
#################@##$$$$###################################$&&&&&%%&%===????++??
#####################$&$$##############################$$$$&&&&&&&%%========????
######################$$$$########$#####################$$&&&&&&&&%%%%=======%==