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