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