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