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