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