SS##SSS%%%%??%SSSSS%%%?*?%%??%%%S%%SS?*?%%SSSSS?*??*?%%%%S####S???*+?%%%%SS####%?%%?%%%S###SSSSSSSSS
%#@@#%%????S####S%?*?SS%SS?***%###SS#%++***??*?%SSS????%S###@@#%??**S%???S##@@@#%???%%S###@#S%%%SSSS
?S#@#S%%%%S#@@@##S%?S@@@@S?+;+S@####S?++;;;;;;;%@@#%***?##@#S%*+*??%#%?*+?S###S?******%###S%***?SSSS
???SS#S%?%%%%S##SSS??%SS#%%?++?%SSSSS%*++;;;;;;*?S#S%?***???+;;;+*?%SS%?*+++*?*+;+++++**???****?SSSS
????????*******????**+****?**++++****++;;;;;++++++****+++++++++++++****+++++++**++++++****??????%SSS
*********+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;++;;;;;;;;;++++++++++*********???
*****++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++***
*****++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++**
****++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;*S%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++
***??*++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;?###%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++*??
*?S##S*++++;;+++++;;;;;;;;;;;;;;;;;;;:+#####S+:;;;;;;;;:;;:;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;+;+++?%S
*?##SS%++;;;+?%SSS*;;;;;;;;;;;;;;%SS%?%#######+::;;:::;;:;*?%?+;;;;:;;;;;;;:;;;++++;;;;;;;;;;;;+?%SS
+*%S%%??*++;+S#SSS%?%%*;;;:::;++*#####S######@#+:;::;++;;+SSSS?*+;;;;:;::::+%%%%%%?*+;;;;;;;;;+*%%%%
***%%?????***%S%%%?*?S%%?+;;::;;?###S**%S##@@@@?+;:+%%%%?*?%?*+;;;;;;;;;;;+%SSS%%%*++++++++++**?%%%%
?%%?%%%%%%SS##S%SS?*+***?%??***%####%????%S##@#%?+;%######%?*+;;;+++++****?%%%%%%%%?*++++*+**??%%%%%
S#%S##S?%###@#####SS%%%SSSS%%S##%*+%SS#S%%SS%SS%%?*%SS#####S%?*+*%%%????+;;+*?%%%SSS%?*+***????%??%%
##%S###S?S@#########SSS#####S%%S*::+??%%??%%?S#SSS%?**?%S####S*++?%SS%%?+;:::;?%SSSSS%?***??****????
###S*%##%?#########SSS########S%%+:;???%%%%%%S#####S?*+;*S####%++*%SSSS%?+;;;*?%%SSSSSS?********????
###%?%S##?%##SSSS#S%%%%%S######S%*++%SSS%%%%SSSSS###S?+;+S###%?++*%%????*+++*??%SSSSS%??*******?????
S#SSSSSSS%*%%%%%%S%%??%??%SSS#S%?**?%##SSSSSS#S%%%SS%*+;;?S%?***??**++*????????%%SSS%%??*******??**?
%SSSSSSSS%?*?%%%%S%*++*****%%%??***?S##S###S#####%?*???**+**?%%%?*?**?%%S%%S%%SS%SSS%%??***********?
***********+**?S%*+;;;;;;;;+++;;+;+S###@###S#####S%+;+***+++****+++++++********??***+++++++++++++***
*************??*+;;;;;;;;;;;;;;;;;?#@@@@######@@@@#?;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;++++++++***
*****++++++++++;;;;;;;;;;+*****+;;%##@@@@####@@@@@@#%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++*
*****++++++++;;;;;;;;;;;;;++******?S?S#########@@@@@#*:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++
******++++++;;;;;;;;;;;;;;;;;;;*%%S#%########@@#@@@@#%;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++
+**++++++;;;;;;;;;;;;;;;;;;;;;;SS%?%S###@@@###@##@@#@#*::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;+**?????*+++
+++++;;;;;;;;;;;;;;::;:;;::::::?#S%%??***?#@#SSS#@@@@@S;:::::::::::::::::::::::::;::;;;*???????%%%++
++++;;;;;;;;;;:;::::::::::::::::?##S?**+::S@@@@@@@@@@@#*:::::::::::::::::::::::::::;;:;????????%%%?*
+++;;;;;;;;;;;:::::::::::::::::::+???***++%#@@@@@@@@@@#?::::::::::::::::::::::::::::::*%?%%%%%??%%%%
+++;;;;;;;;;;::::::::::::::::::::::::*%%%##S@@@@#######S::::::::::::::::::::::::::::::?%%%%%%%%%%?*+
++;;;;;;;;;;:::::::::::::::::::::::::*#@@@@%#@@########S::::::::::::::::::::::::::::::?SSSSSSSSSS?++
;;;;;;;;;;:::::::::::::::::::::::::::,:%@@@%S##########S::::::::::::::::::::::::::::::;%#SSSSSSSS%??
++;;;;;;;;;;::::::::::::::::::::::::::+#@@@S%########@@%:::::::::::::::::::::::::::::::;*%SSSSSSSS?%
++;;;;;;;;;:::::::::::::::::::::::::::%@####?#########@*::::::::::::::::::::::::::::::::;*%SSSSS#S%%
++;;;;;;;;;;:::::::::::::::::::::::::,*###@#S######@%;+::::::::::::::::::::::::::::::::;*%%%SSSSS%??
+++;;;;;;;;::::::::::::::::::::::::::,;###@#######@#;,,::::::::::::::::;+**+;;+?*+;;;;;+*???%???????
++++;;;;;;;;;::::::::::::::::::::::::,?##@#######@@S:::::::::::::::::::+*?%%?**??????????*****??%%SS
++++++;;;;;;;;;;::::::::::::::::::::,:#@##########@%:::::::::::::::::::::;?+;:::::;*?%%%SSSSSSSSSSSS
++++++;;;;;;;;;;:::::::::::::::::::::*###########@#+,:::::::::::::::::::,:*:::::::::;*?SSS?**%SS%SSS
+++++;;;;;;;;;;;;;;::::::::::::::::,+############S+:::::::::::::::::::::::*:::::::;+*?%S%+;;;+%S%%SS
++++;;;;;;;;;;;;;;;;:::::::::::::::::+##########?:,::::::::::::::::::::::;*::::::;*?%SS?;:;;;;?S%%%S
+++++;;;;;;;;;;;;;;;::::::::::::::::::S@#######@*,:::::::::::::::::::::::+*:::::+*?%SS*:::;;;;%%%%%%
++++;;;;;;;;;;;;::::::::::::::::::::::*@####@##@S::::::::::::::::::::::::**:::;+*?SSS+;;+?S%%%###SS%
++++;;;;;;;;;:::::::;::::::::::::::::,*@##@%*#@@#+,::::::::::::::::::::::?+::;+?%#########@@@@#@@#S%
+++;;;;;;;;;::::::::;:::::::::::::::::;*SS%;,?S%?::::::::::::::::::::::::%+:;*%S###@@@@######@@@@@S?
+++++;;;;;;;;;;;;;::::::::::::::::::::::*??;,;??*:::::::::::::::::::::::;%++%S###@@@@@######@@@@@@#*
++++++;;;;;;;;;;;;;;:;::::::::::::::::::+??+::??*:::::::::::::::::::::::*S%S###@@@#S########@@@@@@@S
*++++++++;;;;;;;::::::::::::::::::::::::;??+::??*::::::::::::::::::::::*%###@@@@S*:+#######@@@@@@@@#
*++++++++;;;;;;;;::::::::::::::::::::::;*???;;++*+:::::::::::++++:::::;%S%S%%S#?;:+S####@@@@@@@@@@@#
*+++++++++++;;;;;;;;;;;;;;;;;::::::;;+**?*++;;;;;+;::::::::::;++++;::;*%*+*?***;+?S#####SS#######@@@
***++++++++*?????????*****+++++**********++***++++++++++++++++++++++++++++*??%***S####S%????SSS%SSS%
**+++++++++++*?%%%%%%%%%%%%%%?%%%%%%%%?%%%?%%%%%%%?%%%?%%%%%%%%%???????????%%%??*%##SS%SS%SS%??%%%SS
***+++++++++;;;+*%S%%%%%%%%SS%%%%?%%S%?%%%?%%%%S%%%%SS?%SS%SSSS%%SSS%SSSS%SSS%*?%SSS#?%##SSS##S%%%%%
****++++++++;;;;;+?S%%%%%?%%%%%%%%%%SS%%%%SS%%%SSSSSSSS##SSSSS#SS%%%%%%%%%SSS%??%%%S#SSS%%%%SSSS%%SS