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