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