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