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