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