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