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