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