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