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