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