SS%%SSSSSS%%SSS%*??????S##SSS%?*???********++************+++*****************???%%?**?%%%?%%?????%%%
%%%%##%%%S###@@#%??%SS##@@###SSSSSS%%%%%%%???%%????%%%??????%???????????*?%%%%%%%%???%%?**?%%%%%%%S%
%SSS##%??S@@@@@S?****?#@@@#%???S###%*+++++****+++++++++++++++++++++++++++**++++*************????????
?SSS##SS%%SS##%*++++++??%%?*++*%S#S%**+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++*????
????%%%%??**???****++++++++****?%S%????**+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++*??%?
?**??***********+++++++;;++++++****+++++;;;;::::;;::::::::::;;:::;::::::;;;;;;;;;;;;;;;;;;;+++++*?%%
**?%?*++++++*?*+;;;;;;;;;;;;;;;;;;;;;::::::::;?*:;+++;::::::::::::::::::::::::::;;;;;;;;;;;++++++*?%
**%%?*++++++*+**;;;;;;;;;;;;;::;;;;;::::::::+S##++*++;::::::::::::;++;::::::::::;;;;;;;;;;;+++++++**
**?S*+++++++;;;**+;;;;;;;;;::::;;;;::::::::;S####%+;+;::::;+;::::;;+++;::::::::::;;;;;;;;;;;;*%%*+++
**%@S*+++*+;;;+?%?+;;;;;:;;::;++*+;::::::::%######?:;+;:::*?+:::;;::;??+;:::::::;;;;;;;+**++;++*%%**
**?@@?++**++*?S##S%?+;;::::;;*?%%*+;;:::::*S#######?;+*+;:+?+::;;::?#S%?*+;::::::;;;;;*S#SS%*+++*?S%
?**%@#**%%S#####SSS%?+;::;;;;*%%S%?*++;:::*??S######?????+;?%+;:::;S#S%%%%?+;;;::::::;?##SSS??%?++?%
S%?**SS?S#@####SS%%%S%?+;;;;+?%%%%%?***+*?????S####%****???%%?+;;;;+?%%SS#S%?*+;::::;*?SSSSS%%SS%++*
##S?*?%??%S###S%%%SSSS%*;+*%SS#####%***?SSS#S%%%SSS+*??%?%%%%%*+*????%%%%%?%%%????%%SSSSSSS%%?%SS*++
@##S%*+++*?S#SSSSSS##S%?*+;*%######%*+*?%*????????+;;;+*%%%%?+++***%SSSSS%++?SS%?%SS%%S#SSSSSS%%SS*+
#####%+;;;;?S#S#SS#######?;:;*??????+;+?S???%%%%?;:;;;;;+*??%?;;++;*???%%*++*S##S?+*++*SSSSSS%?%S#%+
######?+;;;;*S#S##########*:;;;+*?????*%%%%%%%%%S%?+;;;;+*??%%?;:::+?????***?S###S+;+*+*?%%SS%%%S#S*
######S+;;;;;*S###########%;::::;+*S###S%S#SSSSSS##S?*++*?%%%%?*;:::+%SS%%%SSSSSS%*;:;++++*??%%SSSS?
SSSSSSS*;;;;:;SSS########SS*:::;;;;;*%##S######%######?**??%%%%*;::::;%SS#SSSSSSS%*+;:;+++++++?%%%%%
%%%%%%%?+;;;:*S%%SSSSSSSSS%*;:;**+;;:;*S#######S@#####S????*****+;;:::*SSSSS%%%%%%?*+++*?*+++++*??%%
*??%%%?*+++++??*????%S%%???+++*?*+++;;;%#@#@######@####S%*********+:::+%%%%%?******??*****++++++*???
*************++*******++++++**?***?%??*?###@@#####@@@@@@#?++++****+;;;;**?***+**?**+++++++++++++****
*++++++++++++;;;;+;;;;;;;;;;;;;;++++++?SS?SS#######@@@@##%;;;;;;;;;;;;;;;;;;;;+%%%%*+;;;;+++++++++++
++++++++++;;;;;;;;;;;;;;;;;;;+;;;;++++?##%##############SS*::::;:;;;;;;;;;;;;;+*+*?SS*;;;;;;++**++++
+++++++++;;;;;;;;;;;;;;;;;;++++++?#S##@@##@@########S@#SS%?;:::;;;;;;;;;;;;;;++;::;?S?+;;++*??%??*++
+++++++++;;;;;;;;;;;;;;;;;;;;;;?#@@#@@@@#%*+;?##@####@@@#%%+:;;;;;;;;;;;;;;:++;;;;;;?%?+*?????????*+
+++++++++;;;;;;;;;;;;;;;;;:;;;:;++++++;+;::::+##@@@@@@@@@#S*:;;:;;:;;;;;:::++;:;;;;:+?%?**?????????*
+++++;;;;;;;;;;;;;;;:::::::::::::::::::::::::;SS#@@@@@@@@@#?::::::::::::::;+::::::::;????**?%????*++
++++;;;;;;;;;::;::::::::::::::::::::::::::::+?#SS@@@#####@#?::::::::::::;+;:::::::::+?%%%%?**%%%??*+
+++;;;;;;;;;;;:::::::::::::::::::::::::::::;S###%########@@%:::::::::::;+;:::::::::;?%%%%%%%???%*+++
++;;;;;;;;;;;:;:::::::::::::::::::::::::::::S##@S%######@#@@#*::::::::;*;::::::::::;%SSSSSSSS%??****
+;;;;;;;;;;::::::::::::::::::::::::::::::,,+#####%S#######S%+::::::::;*:::::::::::::*SSSSSSSSSSS%%%%
;;;;;;;;::::::::::::::::::::::::::::::::::,;####@SS#####@S::,,::,:,:+*::::::::::::::;?SSSSSSSSSSSSSS
;+;;;;;;;;;::::::::::::::::::::::::::::::::,?###########@*,,,:::::;+*::::::::::::::;+?SSSSSS##SSSSSS
++;;;;;;;;:::::::::::::::::::::::::::::::::,+##########@S:,,,,::;*??+;::::;;;;;;++*?%SSS#SSS#SSSSSSS
;;;;;;;;;;::::::::::::::::::::::::::,:,::,,,?##########@%,:,,:,:?%???????????????%SSS%*+*%SSS%%S%%%%
+++;;;;;;;;;;;;;;:::::::,,,,:,,,:,,,,,,,::,:%##########@S:,,,:,:*+;:;+*?%%%%%%%%?*+;:::::;%SS%SSSSSS
++;;;;;;;;;;;;:::::::::::,:,,:,,,,,,,,,,,,,+############*,,:::::;:,,,,,::;;;;;::,,,:::::::;%SSSSSSSS
++;+;;;;;::::::::::::::::::,,:::::::,,,::::;%##########+,,,,,,::::,,,,,,::::::::::::::::;;;;*S#SSSSS
+++;+;;;;;:;:::::::::::::::::::::::::::::::,;#########S:,,,,,::::::::::::::::::::::::::::;;;:;?S#S##
+++++;;;;;;:::::::::::::::::::,,,::,,:::,:::,%@####@###*,,,,,:::::::::::::::::::::::::::::::;??%####
+++++;;;;;;;;:::::::::::,:::::::::::::::::::,*@###??##@S:,:,::::::::::::::::::::::::+%SSSS%%S@@#####
++++++;;;;;;;;;;;;;::::::::::::::::::::::::::;?SS%:,?SS*::::::::::::::::::::::::::;?#@@@@@@@#####@@@
++++++;;;;;;;;:;:::::::::::::::::::::::::::::::*??;,:??*::::::::::::::::::::::::;?S##@@@@@#######@@@
+++++++;;;;;;::::::::::::::::::::::::::::::::,,;??+:,*?*::::::::::::::::,,,,,,;?#####@#S########@@@@
++++++;;;;;;::::::::::::::::::::::::::::::::,,,:*?*::*?*;:::::::::::::,::::::*#@@#@@#?;;%######@@@@@
+++++++++;;;;;;:::::::::::::::::::::::::::,:::;*??*+;;+++:,:,,:,,:;+;+;::::;%S*???%%;::*S####@@@@@@@
++++++++;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;+++*??++++;+++;;;;;;:::+++++;::;*%%*+???*++?S####SSS#####
++++++++;;;;;;;;;;;:;+*?%%?????????***?????**?*****??*****************+*++++*+++*?%?**?S###%%???%S%%
*+++++++++;;;;;;;;;::::;+*%%%%%%%%%%%%%%%S%%%S%%?%%?%%%?%%%%%%%?%%%%%%%%%%%%%%%%S%%????S#S%SS%SS%?%%
**++++++;;;;;;;;;;::::::::;?%%%%%%%%?%%%%%%%%%%%%%%%%%S%%%S%%%SSSSSSSS%%%%%%%%%SSS%?*?%%SS?S#SSS##SS
**++++++;;;;;;;;;:::::::::::+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSSS%SS#S%%%%%%%%%SSSS%%%%SS##SS####S##
**+++++++++;;;;;;;;;:::::::::;*****????????????%%%%%%%%%%%%%%%%%S%%SSSSSSSSSSSSSSSSSSSSSSS######S%S#
**++++++++++;;;;;;;:;;:::::::::::::::::::::::::::;;;;;;;;;;+++++*******?????%%%%%%%%SSSSSSSSSSSSSSS#
***++++++;;;;;;;;;::::::::::::::::::::::::::::::::::::;::::::::;;;:::;;;;;;+++++++**?%%%%%%%%%%%%%%%