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