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