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