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