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