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