@@@#######@@@@@@@@###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@######@
@:::::::::::::::::::::::::;;;;;:::::::;;;;;;;::::::;;;;;;;;;:;;;;:::;;;::;;;;;;;;+
@::::::::::::::::::::::::::::::::::;;;;;++++++;;;;;;;;;;;;;;;;;::::::::::;;;;;;;;#
@;;:::::::::::::::::::::::::::::::::;;''######++;;:::;;;;;:::::::::::::::;;;;;;;;#
@;;::::::::::::::::::::::::::::;;;;;;;''++++++++;;;;;;;;;;;;::::::::::;::::;;;;;;#  never gonna give you up, never gonna let you down
@::::::::::::::,,,:::::::::::::;;:::;;''''';;;++;;;;;;;;;;;;;;;:::,,::;;;:::;;::;#
@::,,:,,:::::,,,:::::::::,::::::::::;;''+'''';'';;:;;;;;;;;;;;;;;;::::;;;;;;:::::#
@::::,,,,,:::::::::::::::,:::::,,:::;;''''';;''':::::;;;;;:::;;;;;;;:::;;;;::::::+
@:::::,,,,:::::::::::::::::::::,,:::''''''';;;'':::::;;;;;;;;;;::;;;;;:;;::,,,,,,#
@:::::,,,,:::::::::::::::::::::,,:::::''''';;;;;:::::::;;;;;;;;::;;;;;;;;::,,,,,,+
@:::::::::::::::::::::::::::::::::::;;''''';;;;;:::::;;;;;;;:;;;;;;;::;::::,,,,,:+
@::::::::::::::::::::;;::::::::;;:::;;''''''';;;;;:;;;;;;;;;::::::;;;;:::::,,,,,,+
@:::::::;;;;;;;;;;:::;;:::::;;;;;;;;;;''''';;;;;;;;;;;;;;;;;::::::;;;;::::::::,,:+
@::::;::::::::::::;;::::::;;;;;;;''';;''''''''##++;;;;;;;;;;:;;:::;;;;;;;;;;::,,:+
@;;;;:::::::::::::;;:::;;:;;;;'####';;''+'';;+#####++'';;;;;:;;::;;;;;;::::::::::#
@;;;;::::::::;;:::;;;::::;''#######+;;''+;;;;##########+;;;;;;;;;;::;;;::::::::::#
@;;;;::::::::;;;;;;;;:::::++########++'''''++###########++;;;;;;;;;;;;;::::::::::#
@;;;;::::::;;;;:::;;;::::;##########++++'''#############++;;:::;;;;;;;;::::::::::+
@;;;;;;;;;;;;:::;;;;;;;::;##########++'''++###############;;;;;;;;::::;;;;;;::,,:#
@;;;;;::::;:::::;;;;;;;::;##########++++'++###############;;;;;;;::::::;;;;;;;:::#
@;;:::::::;;;:::;;:::;;;;;##########++++'++###############;;;;;;;:;;:::::;;:::;;;#
@;;:::::::;;;:::;;::;::;;;####@#######''+##############@##;;;;;;;:;;:::::;;::::::#
@;;;;:::;;;;;;;;;;;;;;;;;;####@#######+++#######++'++#####;;;;;;;::::::;;;;::::::#
@;;;;;;;;;:::;;;;;;;:::;;'#####@@#####+++##@@###++'''##@####;;;;;;;;;;:::;;;::::;#
@;;::;;;:::::;;;;;:::::;;'##@@#@@#####+++##@@@##++'''#######;;;:::;;;;;::::;;;;;:#
@;;::;;;;;;;;;;;;;;;:::::'#####@@@@###++#@@@@@@@##+''#######';;:::;;;;;::::;;;:::#
@;;::;;;:::::;;;;;;;:::::;++#####+++##++#@@@@@@@@@###@@#####':::::;;;;;::::;;;:::#
@;;::;;;:::::::;;;;;:::;;;++##+''+++#####@@@@@@@@@@@@@@#####';;::;;;;;;::::;;;:::#
@;;::;;;:::::;;;;;;;;;;::;;;###+++++@@###@@@@@@@++@@@@@#####;;;;;;;;;;;;;;;;;;;;:#
@;;::;;;:::::;;;;;;;;::::;;;;;+++++######@@@@@@@@@@@@##+++;;;;;;;;;;;;;;;;;;;;;;:#
@;;;;;;;;;;;;;;;;;;;;::::;;;;;;++##@@@###@@@@@@@@@@@@##;;;;;;;;;;;;;;;;;;;;;;;;;:#
@;;;;;;;::;;;;;;;;;;;;;::;;;;;;####@@@###@@@@@@@#######;;;;;;;;;;;;;;;;;;;;;;;;;;#
@;;;;;;;:::::;;;;;;;:;;;;;;;;;'####@@@###@@@@@@@@@#####;;;;;;;;;;;;;;;;;;;;;;;;;;#
@;;;;;;;;;;::;;;;;;;:;;;;;;;;;+##@@@#####@@@@@####@####;;;;;;;;;;;;;;;;;;;;;;;;;;#
@;;;;;;;;;;::;;;;;;;;;;;;;;;;;+####@@@###@@@@@@@@@@@@##';;;;;;;;;;;;;;;;;;;;;;;;;#
@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;###@@@@@++#@@@@@@@@@@####';;;;;;;;;;;;;;;;;;;;;;;;;#