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