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