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