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