%%%?**%SS%???%%???*+***++***+***?%?*+***%SS?+***++?%%*?%*+*????%S%*+++%#%?*+++++***?%%%?%S###%?%%%%?
SSS%?%###S?**%%**?++***+++++++**???++***?SS%*++****?%??**++??**%#*;;;;*S%?*++*+*+*?%%%SSS%SS%??%%%??
##S%SSSSS#S??%%***+**?????**++;++++++++++*??*++*?%**?*++++++*++*?+;;;;+?%S%%*+***?%%%%S#S?%%???%%%%?
%S%%%%%%%%%%%SS%%*+***??????*******+++++++++++++++++++++++++++++++++++++%##%+++***%%%%%??**???%%SSS%
**********+****??++***+++++++++++++++++++++++++*********************+++++??*++****%%?%?**??%%%%%SSS%
***+++++++++;;+*+++**+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+*******++*?%%?%?**??*?*?%SS%S
***+++++++++++**+++**+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:;:;:::;;:;+*????%%?**?%SS??*+*++++*%SSSS
****+++++++;;**+++***;;;;;;;;;;;;:;;;;;:;::::;:;:;;;;;;;;::;;;;:::::;;+++***?%SS?**S###S???***?%S%%%
*+++++++++;;+?++++**+;;;;;;;;;;;;;:::::;::;:;::::;;;;;::;::;::::;;+++++**?*???%?*??%%%%%????????????
*++++++++;;+?*++++**+;;;;;;;;;;:::::;::::::::::::::::::;::::::+*********??????????%%%%%%%%%%%%%%%%%%
*+++++++;;+?*+++++**+;;;;;:;;;;;::::::::::::::::::::::?+::::;*%%%%%%%%%%%%%%SSSSSSSSSSSSSSSSS##S####
++++++++;;??++++++**;;;;;;;::;;;;::::::::::::::::::::?#%::::;+***??????%%%%%%%%%%%SSSSSSSSSSSSSSSS#S
+++++++;;*%++++++**+;;;;;;;;:::::;::;;::::::::::::::*###S?;;:::::::::;:;;;;;;;;;;;+++++++++++++*****
+++++++;*%*++++++**+;::;:::;;::;:;;::;:::::::::::::+S#####S+:::::::::::::::::::::;;;;;;;;;;;++++++++
++++++;+%?+++++++**;;:;:;:;;:::::::::::::::::;;:::;*?%#####+::::::::::::::::::;::::::;;;;;;;;+++++++
+++++++%%*++++++**+;:::;;:::::::::::::::::::::::::*?**??S#?::::::::::::::::::::::::::;;;;;;+;+++++++
++++++%S?++++++***+;::::::::::::::::::::::::::::::;*?**?%*;:::::::::::::::::::::::::;;;;;;;;;;++++++
+++++%#%++++++**?+;;::;:::::::::::::::::::::::::::;?%%?????*+:::::::::::::::::::::::::;;;;;;;;++++++
++++?SS*+++*****+;;::::::::::::::::::::::::;++++*?%SSS%%%%%%?;:::::::::::::::::::::::::;;;;;;;;;++++
+++*%?*;***?*?*+;:::::::::::::::::::::::::+SSSSS###SSSSS%%%%%*::::::::::::::::::::::::::;;;;;;;;++++
+++****+***+*?*;::::::::::::::::::::::::::*####SSS###SSSS%%%%?::::::::::::::::::::::::::;;;;;;;;++++
++++++++++++*?*;::::::::::::::::::::::::::;S###?;:;S#SS%%%%%%%+:::::::::::::::::::::::::;;;;;;;;;+++
***%%*****++***+;::::::::::::::::::::::::::+S#S%?*:+SS%%%%%%%??;::::::::::::::::::::::::;;;;;;;;;+++
%%%SS%??*++**++;;:::::::::::::::::::::::::::++;+??;:*SS%S%%%%%?*::::::::::::::::::::::::;;;;;;;;;+++
%SS%*+++++***;;:::::::::::::::::::::::::::::::::;;:::%SSSSS%%%%?+:::::::::::::::::::::::::;;;;;;;+++
SS%%++++++**+;:::::::::::::::::::::::::::::::::::::::%#SSSSSSSS%?+::::::::::::::::::::::::;;;;;;;+++
SSS?+++++*+;;::::::::::::::::::::::::::::::::::::::::?#SSSSSSSSSS?*::::::::::::::::::::::;;;;;;+++++
##%**+++**;;:::::::::::::::::::::::::::::::::::::::::?##SSSS####SSS+:::::::::::::::::::::;;;;;;;;+++
?S?**++**;;:::::::::::::::::::::::::::::::::::::::::;S##########SS%+:::::::::::::::::::::;;;;;;;;+++
?%%?****;;;:::::::::::::::::::::::::::::::::::::::::*%###########?:,::::::::::::::::::::;;;;++++++++
%S?++++;;;:::::::::::::::::::::::::::::::::::::::::::S###########;,::::::::::::::::::::::;*?????*+++
**++;;;;;;::::::::::::::::::::::::::::::::::::::::::;###########?::::::::::::::::::::::;;+**???*++++
?**+;+;;;;;::::::::::::::::::::::::::::::::::::::::,;##########S;,::::::::::::::;+++;;+**+++????++++
?S#%?*+;;;;;::::::::::::::::::::::::::::::::::::::::?##S#######*,:::::::::::::::;++++*???*+*????*+**
??S###?*++;;:::::::::::::::::::::::::::::::::::::::;SSSS#####S+,::::::::::::::::;++*??%%????????????
??*?%%*+++;;;:::::::::::::::::::::::::::::::::::::::?########+,:::::::::::::::::;?????*+;+??????????
******+++;;;;;;::::::::::::::::::::::::::::::::::::,+#SSS*SSS+:::::::::::::::::::;;;;;::;;;?%???????
****+++++;;;;;:::::::::::::::::::::::::::::::::::::,+#S%?:*##?:::::::::::::::::::::::+;;;;;*%?????%?
****+++++;;;;;;::::::::::::::::::::::::::::::::::::::*?+;:;%?+:::::::::::::::::::::;;++;;;;+***?????
****+++++;;;;;;;:::::::::::::::::::::::::::::::::::::,;+;::+;;:::::::::::::::::::+S#S%??*+*?????%%%%
***++++++;;;;;;;;::::::::::::::::::::::::::::::::::::::+;;:;+;::::::::::::::::;*S####?*****??*?????%
**+++++++++;;;;;;;:::::::::::::::::::::::::::::::::::::;;;:++;::::::::::::::;?S#####S+;;+*%S?****???
**+++++++++;;;;;;;;:::::::::::::::::::;++++++++;;;;;;:;;;;+?*+;::::::::::::*S#####?;;+++*%SS%**?%%%%
+++++++++++;;;;;;;;;::::::::::::::::::::+*?***?*****+**++++*++;;:::;;;::,;%#####%+;;+++*%S%%%?????%%
*++++++++++;;;;;;;;;;:::::::::::::::::::::*????????????%???*?*++++++;;;;*S###S?+;+++++?SSSSSS%%????S
++++++++++++;;;;;;;;:::::::::::::::::::::::+????%%%?%??%?%?%%?%%%%??++*?S###%?**+++++*?%??%%%%%%%%%S
+++++++++++++;;;;;;;:::::::::::::::::::::;;;;++++***????%%%%?%%%%%%%*+*?%%%??*++++++*%%%%%???%%%%%%%
++++++++++++;;+;;;;;:::::::::::::::::::;;;;+++++;;;;;;;+++**????%%%%%**?%???*+++++*%%??%???*?%%%????
*+++++++++++;;;;;;;;::::::::::::::::::::::;;;++++++++++++++**++++****???????++++*?S%%%?*+****++*****
*++++++++;+++;;;;;;;:;:::::::::::::::::::::;;;;;;;;;;;+++++++++++**+++++++*+++++*????????????****???
*++++++++;++;;;;;;;;;;;::;::::::::::::::::::::;;:::;;;;;;;;;;;;;;;;;;;;;;++++++++*******????????*???
**++++++++++;;;;;;;;;:;;::;;::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;+++++++++*************??
**+++++++++++;;;;;;;;;;;;::;::::::::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++*********?
**++++++++++;;;;;;;;;;;;:::;::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;+++++++*********?
***+++++++++++;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;++++++++++*******?