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