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