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