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