::::::::::;;;;;;;;;;;;;;;;;;;;;;;;-======+++++++***??%%%%%%%??%%SSSSSSSSSS######
::::::::::;;;;;;;;;;;;;;;;;;;;;;=++++++=====+++++***?%%%%??????%SSSSSSSSS#######
::::::::::::;;;;;;;;;;;;;;;;--=+*******+===+++++++**?%%%?**????%%SSSSSSSS#######
;;;;;:::::::::::::::::;;;;-=+++**??***++==+++**?*****????????????%SS%%SS########
;;;;;;;;;;;;;:::::::;;;;-=++++?%S%%%%?*+++***??*????????????%????%%%%%%SS#######
;;;;;;;;;;;:::::;;;;;;;=++++*?%SSSSS%%?*+***???????%%%??????%%????%%%%%%SS######
::;;;;;;;;::::::;;;;;;=++*??%%S%%%%SSS%****???%%%%%?%%%%????%%????%%??%%SS######
::;;-----;:::::;;;;;;=*??%S%**=---==+?%?***?%%%%%%SS%%%S%????%???%%????%SSSS%S##
;;-==+++=;;:::;;;;;;-*%%%SS%===;;;---+*%?*??%S%%SSSSSS%SS%???????%%%??%??+===*%#
--=++++++-;;;;;;;;;;+?%SSS??-=*----+****%%%%%SSSSSSSSSSSSS%??*??????*++=-;;;;=%S
==+++++++=-;;;;;;;;=?%%S#*+%+=;=-=*+=---=*%SSSSS#SSS##SSSSS?*****+==---;::::;=?%
===+++++++-;;;;;;;;*%%S#%==?*==;++-;;;;--=*%SSSS###SSS##SSS?*++=--;;;;;;::::;=*%
===++++**+-;;;;---=?%%S#*+%%?=:;*;;;;;-=+**?%########SS###S%%*=-;;;;;;;;::::;=*?
====++**+=-;;;-=++*%SSS#*S?%?==?=;;;-*%S%????%##############S*+-;;;;;;;;::::;=*?
===++++++==----=+*?%SS#SSS?%%*?+;;-*%S%*====++?S############%?===;;;;;;;::::;=??
===+++**+++++==++*?SSS#S%=-+**%-;=*??*+=+*????++?S#########S*=+=-;;;;;;;::::;=??
==++++**+++=++++++?SSSSS+=---=+--=+*****?%S##%+==+??%##@#S*+*+-=-----;;;::::;=?%
+++++***++++++++=-+SSS#%+=-=++=---=+**?S#@##S+---=+??%?S%+**=-=+------;;::::-+%S
++++++++++++*++=---SSS#S+*SS%?+=-;-=+?SSSS%?=--;--=*?%????+---??=-=**+----;-+%S#
=++*+=====++*+====-%#S##?#S%??*+-;;--=**++-;;;;;--=*??%?%*---=S%=-+SS?*?S?++S###
===++=-===+++===+++?SSS#S?*++***=;;-----;;;;:;;--=+*??%%?%*=-?#%*=*SS%%%S%**S###
=======+++=======+++SSS#S***?%%*+-;--;;;;;;::;;--=+*%%%%?*===#S%*+*?%%%??*+*S##S
===--=++++=====-====*SS##%SS##S+=-;--;;;:::;;;--==+*%%%%%*==%#S%?*+*?%%?+++?S#S*
+++--=++**+===-===+++%SS#####%+-=;;----;:::;;;--==+*?%%%%?++###SS%**%S#S%%%SS*-:
+++=-=+***+==--=++*+++?%S#SS?=---;;---=;;;;;;---===+?%%%%?*###SS#S%%S#######*;:,
+++==-=++=====--=+++==+*?S*+--;--==+%?+-;;;;;----==+*%%S%%#@##%%S##########S=:::
*+++=-==++++++=-==++----+%+--;;;=????*+-;;;;;----==+*%%S#S#@#SS%SS###@@####?;:::
?+-=+**+**??*+=--===-----=--;;;;-*%+=--;;;;;-----==+*%%SSS@###SSS%%##@@@@##?;::;
%?++***?**??*+==----==--;;;;;;;;;-=-===---------===+*%%%%%S###S%SS??#@#####S+---
S%?***???*??*++==---=+==;;;;;;;;;;;-*????*+=---===++?%%%S%%%#S%??S%*%###SSS%+++-
SS%?**?%%?%%???*+=-===-=;;;;;;;;;;;-=*??%%?=======+*%S%SS%%S#%??*?%*?S#S%%%?+++-
SSS?++-+%?%%????*+++++-;;;;;;;;--;--===++++=====++*?SSSS%SS#S?*?*?%**%S%%S%?**=;
SSSS%?+?S%%%%%?%%%%%?--;;;;;;------==+++*?*====++*?SSSSSSS##S%?%??%??%%%??%%?+-;
S#####S#####SSS%%%%%*=--;;;--=+=--==***?S?=-===+*%S#SSSSS#@##SSSS%%????+-=?%%*-;
SS##SSS#SSSS####SSSS%%*=-----*%?++*?SSS%+---==+*%S#SSSS%%S@####S#SSS%??+=+%S%+-;
SSSSSSS#SSSSSSSSSSS%S*+=---==++=+*%SS%*=---=+*?%S#SSSSS%?%#@#######S%???%###%+-;
SSSSSSSSSSSSSSSSSS?+-----==***??%SSSS?++=++*?%S##SSS%%S??%#@#######S?*?S###S?**?
SSSSSSSSSSSSSSSSS?-;-=+*?%%SSSSSSS%SS%????%SS##SSSS%?%S???S@@###@@#S??%S###S??S#
SSSSSSSSSSSSSSS?=;;--==+=*%SSSS%%S%%S#SSSS####SSSS%%?%S*???#@@#@@@#%??S####S??S#
S%%SSSSSSSSSS?=;;;;;;;;;---=*%%%%S%%S#######SSSSS%%?*%%****S@@@@##S%%%S#####%%S#
S%%%SSSSS##SS;;;;;;;;;--=+=--=*%%%%%%SS####SSSSS%%?*+?%+***?######S%%S######S%S#
%%%SSSS%S##SS-;;;;;;;;--=+?*+==+?%%%%SSSS#SSSSS%%%?++?%++***?###S%%SSS######S%S#
%%SSSSSSS##SS+-;;;;;-=++===?%?++=*%%%SSSS#SSSS%%%?*++*?+++++?%%???%S#########%S#
?S#SSSSSSSSS#*-;;-=?S#@#%*=+?%%?***%%%SSS#SS%%%%??+++**=++++?**???%S#########%%#
?S####SS###SS%=--+?#@@@@@#%**?%%%%%%%%%SSSSS%%??**+=+*+==++*+==+*?%S#########SS#
%S####SS####S#S+=*S@@@@@@@#%?*?%%%%%%%%%%SS%%?*+++===++==+**=====+?S#########SS#
%#####SS###SS###SS#@@@@###S%%%%S###S%????S%%?*++++=======**=------=*%########SS#
%#####SSS#SSS##SSS########S%%%SS?*??****?%?**++=+=======*+==--------=+?S###SSSSS
%#####SSSSSSS##SSS########%%%SS?+++++**?%?**+===+=====+**+======---=====+?SSSS%S
%#####SSSSSSS##SSS########SSSS%+++++**%%S?+++===+==++*%?+=-------------=?SSSSSSS
S######SS##SSS##SS#######SSSSS?++++***%SS%+=*?++=*?????=;;;;;;;;;;;---=%SSSSSSSS
S##########S%S####SS###@#SSSS%++++**+*%%SS?+S%???%??++=;;;;;;;;;;;---=%%%S%%%%%%
S@@@#@#####SS####SS##@@#SSS%S*+****+**%%%S%%%?%?%%**=;;;;;;;;;;;;----?%%%?**?%%%
S@@@@@@#####S#S%S###@@#SS%%S?*****+++*?%%%%%?%%%??*=;;;;;;;;;;;;----*%%?*?**???%
S@@@@@@#####S%S#######@%%%S%*****+++++?%??%S%%%S%=+-;;;;;;;;;------+%%??%?***%S%
S@@@@@@##SSS%%SSSS########%*****+++++=+*+*SS%**S+------;;;;;------=%%??%%?*?S%??
S@@@@@##SSS%SSSSS########S?*****+++==--=?%S%?*===--------;;;------*%*?SS??%S?**?
#@@@@@#SSSS%SSS###SSSS@@#?****+++===----*SS?*+=---------;;;;-----+%**SS%%%%*****
#@@@@@#SSS%%*+%###SS#@#@S?***+======----*S%?+==------;;;;;;;----=***S#S%S%*****?
#@@@@@@#SS%%+--+%SS##SS#S?**+=----------+%?*==-----;;;;;;;;;;---=**%##SS?****???
#@@@@@@#S%%?+-+%S##SS###S%%?=------------?+==----;;;;;;;;;;;;--=+*?S###%?*******
@@@@@@##SS%?*+*SS###S######S%*=----------+==-;;;;;;;;;;;;;;;;--=+*%###S?********
#@@@@@##SS%+=-+%S###########SS%+---------===++*********++=-----=*?#@#S%??*****??
#@@#@@##SS%+-+*%S###S######S%%S%*=-----=+*????????%%????**+====+?S#@#S%%%???????
#######SS%?=-?%S%#S########S%%SSS?+++**??%%%%%%%%%S##S%%%%%?****?###SS%%????***?
#######%??*-*?%S#SS######SSSSSSS?**?*%%%%%%%%%%%%%%%S###SSSS%%???###S%????*****?