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