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