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