@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################SSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@######################################SSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@#################################SSSSSSSSSSSSSSSSSSSS%%%%%%%%%%
@@@@@@@@@@@################################SSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%???
@@@@###############################SSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%?????????????
@############################SSSSSSSSSSSSSSSS%%%%%%%%%%%%????????????***********
####################SSSSSSSSSSSSSSSSSS%%%%%%%%%%%??????????**********+++++++++++
##############SSSSSSSSSSSSSSSS%%%%%%%%%%%?????????*********++++++++++===========
######SSSSSSSSSSSSSSS%%%%%%%%%%%%?????????*******++++++++++===========----------
#SSSSSSSSSSSS%%%%%%%%%%%?????????********+++++++==========-----------------;;;;;
SSSSS%%%%%%%%%%????????*********+++++++=========------------;;;;;;;;;;;;;;;;;;;;
%%%%%%????????******+++++++=========----------;;;;;;;;;;;;;;;;;;::::::::::::::::
?????******++++++========---------;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::
**+++++=======--------;;;;;;;;;;;;;;;:::::::::::::::::::::::::::,,,,,,,,,,,,,,,,
====-------;;;;;;;;;;:::::::::::::::::::::::::::,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,
----;;;;;;;;;:::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-----;;;;;;;;::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
===------;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,
***++++++=====-----------;;;;;;;;;;;;;-;;;;;;;:::::::::::::::::::::::,,,,,,,,,,,
???*******+=====-----------;;;;;;;;;;;++;;;;;;::::::::::::::::::::::::::::::::::
???***++++++====-------------;;;;;;;;;-%+;;;;;;;;:;;::::::::::::::::::::::::::::
%%??***+=-==+========-----------;;;;;;;??+;;;;;;;;;;;;;;::::::::::::::::::::::::
????***++--=++===------------;;;;;;;;;;*%?+-;;;;;;;;;;;;;;;;;;;;;:::::;:::::::::
%????****=-*+S?+====--------;;;;;;;;;;;+%%?+-;;;;;;;;;:;;;::::;;;;;;;;;;;;;;;;;;
%????**+++-=%%#+==-==-------------;;;;;+?*+=-;;--===+++**+=-;::::;;;;;;;;;;;;;;;
%???**+++=-;+=#=-==-------;;---;;;---==++**?????%%%SS%%%%%**+=--*+-;;;;;;;;;;;;;
%??****+++==;-=-==++=--==++**?????????????*****+???**?*+++=====+*++=;;;;;;;;;;;;
%???****++++=+*??%%?????????*******++++++++=+++====**???%%%%%%%%%%?+;;;;;;;;;;--
%%???****+*?%%%??***++++++++++====+**??%%%%SSS%SSSSSSSSSSS%%%%%??+-;;;;;;-------
SS%%**?***??%SS%*++++*???%%%%SSSS##@@###S%??%%%%%SSSS%%%%??*+=-;;;;;;;;;;;;;;---
SS%%????*++=-=+*?S###########SSSS##S%?+===*???*+==---;;;;;;;;;;;;;;;;;;;;;;;;;;;
%%%%?***++=========+*?%%%%%%???%%?+=+*?SSS%*+?--;;;;;;;;;;;;;;;;;;-=--;-----====
SSSS%??***++=====----------=+++=--+%SS##SSSS%@+;;;--------;;;;;:;;=++=====-==+++
SS%S%%%%??*++=+++===--=====-;;;;;----*#%%%???@+;;;;;;;---------;:;=+++++++=;--=+
S%???%??**++==+++++====---==+=-;-------+%%%%%*---;;;;;;;;---====-++++****++=-;;;
%%??*??*====+==---=+====++++*+=;;------;-===--=====-------=+**************++*++=
%%%%?%SS?+-=***+===+***=;=+**++++=--;-==--;;;;--===------==+**????????****+=+=+=
%%%SSSSS%+;;*???????%%?*+++*+-=****+=---+==-;-;;;--==+++++=++***?????????****+**
SSSSSSSS?+-;=*?%%SSS%%%%???*+;-*??**++=---;=++-;;;-=++*****++++++***????????****
####SSSS%?*=;--=+?%%?=-?%**?+--====++++++=+**++=-;-=++++****+++=++++++*???????*?
##S%%S%SS%%???++=+*+==--*+--=+=+++=++**?%%%%???*+=--;--;===++=-----=---=??%%%???
SSSSSSSSS%%%??*****?+**???+=;-=++****??%SS%%?*++**+++==:;;;;;---=++++---+*??%%%%
SSS#SS##SSS%%?%%%%%%?%SS%?*+-;;---+*?*+====--=*?????**+--==+=++*???*++=--=+**???
SSSSSSSSSSSSSSSSSSSS%%SSS%??+=-;;;--;-=--====*????????**?%%%%??%%%%%?**+;;-=+*??
*%##################SS%S%****+=-;;==-;==-;+==+**????++????%SS%%SS%?????*==--=++*
==**??%%%%%SS#######S**++**?+=+==--==+**+-=++--+?%SSS%%%%?????%%S%?%?+=++=++--=*
=++*+--++++=---+*?%%??*??%%%%?*+*****??**???*++**+?%SS%%??%?*+--===**++=++???*?%
%%%%%+-+%?%*+-;;-+*?%S%%S%%*%S%%?%%%?%S%?%?****+*???%%S%%%????*+==--=*?%%%?%%%%%
###SS*+?SSS%??+-=+?%??S%?%??%SSS?%SSSSSS%%%%?SS%?*++?%%%%S%%%%??***?%%%%%SSSSSS%
####SSS%%%SSSS%??%SS%%S%?%****%%S%SSSS%*=-*%%SSSSSS%?*+=++***??%%%SS%SSSSSSSSS%?
#%S%%S#SS%SSSSSSSSS##SSSSS%?*+==*??=+***+;-=*%SSSS%%%???***+--=+*?%%%%?SSSSSSSS?
###SSS###S####SS######SS%%%%%*+-+*+--+?*+--;:;*%%?%SSSSS%%%%%???%SS%SSSSSSSSSSSS
S?#######S%?*+-???S##SSS??%%S%%**?*=-++??**+=;;==+*?%SSSSSSSSSSSSSS??SSS##SS##SS
?+*######S*++=--;;-*SSSSSS%%SSS%%%%?*-=+++-=*====-=*?SSSSSSS%SSSSS%**%S%%?*??+**
%?+*S####%**+=----;;+?%###SSSSSSSSS%?????+=;*?*+==*???%#S??%%?%SS#SS%**=;;;*%%%*
S%?%SS###%?***=-;;;;---?##########%==?SS%%?**%%%****??*S##SS##SS####S?++==*%SSS%
SSSSSSS#S%%%S%?*-;;;;;;=%###S?+++%+-;+%SSS%%SSSS%SSSSS%?%SSSSSS#S####%%%S%SSSSS#
#####SSSSSSSSS%?*+---;;;;+===?*=----;;;+?%%%SSSS########SSSSSS%######SSSSSSS####
SS%%SSSSSS####%?*?**+=-=**??=*=-=----;::;+?%SSSSS#########SSSS%%%######SSSSS####
??%%SS#######S*=*?%??*?%%SSS%%?*===++=;;;:;;=**?SSS#####SSS%S##SSS#@############
SSS##########S%?+-=?%%SSS###SS%%*=-+*+-=--;;-;;-+*?*+*%S%?%%S################SSS
#############S*???++?*S######SS%%?+=*+*%???+-;;;;;-=+=--**?SSS##@###############
##########@##S%%%%%??%S#%%S#%*=-?%*+%%SSSSSS%*=-==+++?+-=??S##@##@@@@@##########
###############S%%SSS%%%%?+=???==**?SS######??+=*+==***+=?%S####@@@@@@@@@@@@####
@@@##################SS##SS%SSS%=*%%S#######S%%%S%?**+====+*%S##@@@@@@@@@@@@@###
@#@@@@@########################S*==+?%###########S%???*+++???%SS#@@@@@@@@@@@@@@#