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