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