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