&*#_#@@_*_##
__*@##%*##_%%**@*###*__*###**_@#_@@_#%_#**#**&*#_**@#**%*#@*###%@@@#&*&*_@###_#_**&*%*%#*&*
__%**#&*#_*_%@@##__
##*%*%*##&_*#%*#_##*@###*_*##***_%*@%%_&_#@#####****%@@###%&_#*&@&*
*##*___*##_##_****#_
######*#*#@*%*#&&__*_%#__*#%%#_#_*#*__*#*%*#**_*_#**_#%*&@#*@***_#@*#*#*%**#&%##__%#*%&@**__%#*&
#*@&&*&_*
*__***##***&@_*&_%#%##*___%#*%*__#_#&**_##%#_*#**@*&**#_%##*%#_%#%****__@&_**@####*##_*#*_&*#
#*##****_##_&_@_
__#@##_#_##%**###&**#_##**&*%**%@_*@%*_#@#*#*@#**#**_#**##_#*@_*%##
%@#*@
#***&*#_@#*##*%**@@**##*#_#@*#&_***__@@*_#***@@#**#@#*_##*#_##**@%#&**#_*#_%_%***#***##_#*&&*#*@@_**#%@*@#*##_*%##@%%_%#*##&*****#%#*_*
*##_#@%##_
_*#%#%___&*#*####_*#%*%#_&**%_*_##**#*#*__**#_#*_*%_%@##*%##*#*_%_*%*_*#*
@*&*#_#
#@*%#%*@***#*%%*#**###@#*#*#*#_#__%%*##@##%*@#*@_###_#@*#@@_******@#*