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