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