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