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