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