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