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