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