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