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