%???**************%SS%***++++++++++++**?***?%%%%?*+;;+++**+*?%S%?++++++++*??%%??******?%%%%?????%%%%
%%??**************?%%?????*++++++++++*????%S##S%*+;;;++**??%S##S%?*++****?SS#S%?******?%SS%??????%%S
%%???*********???????*******+++******+++++*?S##S?*?%%?***??%###S%????%%??%S###S%??%?**?S##S%?????%%S
?????*******??????**********++*******++++++++*??*%S%%?******?%%%??%%%%%***%%%SSS%%%%???%S%%???????%S
????*******???%%?****++++********************+++++*+++++++++++++++++++++;;++++**************????????
?????*****??????***++++++++++++******+++++***++++***********++**++++++**++++++++++++++++++**?******?
??*********+++++++++++;+;;;;;;;++;;;;;;;+;;+;;;;++++++++++++++++++++++++++++++++++++??*++***********
********++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+*+;;;;;;++++++;;;;+;;;;++++++++++?S*+++++********
*******+++++++++;;++;;;;;;;;++++;;;;;;;;;;;+++;;;+%#S+;;++++;+++++;;;+;;;;;;+++++++++*+++++++*******
****?**+++++++++++;;+;;;;;;;;;;;;;;+++;;;;+;++;;;?##@%+;+**+;;;;;;;;;;;;;;;;;;;++;;;;+++++++++*+****
***?%*+++++++++++;;;;;;;;;;;;;;;++++%%*;;;;;;;;;*####@S+;**+;;;;;;;;;;;;;;;;;;+;;;;;;+***+++++++++**
***S%+++*?%%%%*+;;;;;;;;;;;;;;;*S%?*+*?*+;;;;;;+S#####@#*+**+;;;+?SS?+;;;;;;;;;;;;;++*???*+++++++***
**?#%++*S#SS%%?+;;;;;;;;;;;;;;;;?%%???*++;;;;;;?#########%***+;+S#@@#%;;;;;;;;;;;+?%%S%%??*;;;++++**
**%@#%%S#S%?*?%?++;;;;;;;;;;;;;;;*?%%S%%?**+;;+?SS##@@@#@#*+***?%SS##S*;;;;;;;;;;*SSSS%**?%?+++++++*
**?%SSS#SS%%?%?*+++*+;;;;;;;;;;;;+%SSSS##S%**++++?%##@@@@#+;;;++*?%%%??*+;;+;;;;;+%%%%%%??%%?*+*++**
***++++***??%?*****?%?**+;;;:;;++?SSS##@@@##S%%%%??%S###@%;:::::;+???*++;;+??+;;;;*%SS##SSS%%????*+*
**++++++*??%%???%SSSS###S%???%SS%?+++%####@@#%%#%???%%?S#*;;;;;;;;++++;;++*%#S?*++?%%S######SSS##S?*
%????*?%#@@@@###@@@@@@@######S%*++**++?S##@@@%+***??????+;;+++++***+++?%SSS#####S%*+;;+?S#########SS
SSSS#@@@@@@@@@@@@@@@@@####S?+;;;*#@@#SS######S**???????;:::::;;;;;::::*#@@@@#####%+::::;+%#######SSS
***S@@@@@#S??S@@@@@@@@##S?*+;;;?#@#@@@@#######S%%%%?%%?*+;:::::::::::::*S@@###SSS%*;:::::;*S######SS
?%#@@@#S%*+;;+?S@@@@@####%*+;+++??*S#SS#@@@@@@#%SS%%%%SS%**;:::::::;+***?SSS##S%???*+******%#SSSS#SS
%%%S##?+++;;;;;*S#@@@@@@@@#?*%*;;;;++;;*S@@@@S%##SSS#S%S%%??*;;;++?%#####SSSS##S?*?%SSSSSSSS########
******+;;;;;;;;;*******????*+++;;;;;;;;;;****S####S@S%#####SS?****??????????????*++*?**?????%?%%%%%%
+++++++;;;;;;;;;;;::::::::::;::::;;;;++%SS?:+#@@@#%#S#@#@@###S%*;:::::::::::;;:;;;;;;;;;;;;;+++++++*
***++++++++;;;;;;;;;;;;;;;::;:::::::+SS####?%#@@@@S#####@@#####S?;:::::::::::::::::::::;;;;+++++++**
******+++++++++;;;;;;;;;;;;;;;;;;;::;?S####@##@@@@#S@###@@@@@@@#S?;::::::::;:::::::::::::;;+++++++++
*********+++++++++;;;;;;;;;;;;;;;;;;;;+#@@@@@@@@@@@S#####@@@@@@@##%;::;;;;;;;;;;::::::;;;;+++++++++*
******++++++++++++;;++;;;;;;;;;;;;;;;;:+S@@@@@@@#%?S#@@#####@@#SS%?*;;;;;+;;;;;;;;;;;;;;+++++++*****
*****+++++++++++++;;;;;;;;;;+;;;;;;+;;;;;*?%SS#%++*%##@#@######SS%%?+;;;+;;;;+;;;;;;;+;;;++++++*****
*****+++++++++++++++;;;;+;;;;;;;;;+;;+++*****?%?*?SSS###@#SSS@@@#%???;;;;;;;;;;;;;;;++;+;+++++++++++
*****++++++++++++++;;;;;;;;;;;;;;;;;;;++*++++?##%*S###@@@@##@@@@@@S??+;;;;;;;;;;;;;;;+++++++++++++++
**+*+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:::;S@#?%S%%S#@@@@@@#@@@@@S?;::::;;;;;;;;;;;;;;;;;++++++++
****++++++++;;;;;;;;;;;;;;;;;;:;;:::::::::::::;*+:::::*S@@@#@###@@@@@S+:::::::::::::;;;;;;;;;;;+++++
***++++++;;;;;;;;;;;;;::;;:::;;;;:::::::::::::::::::::+%#@#########@@@?::::::::::::::::;;;;;;;;;++++
+*++++++;;;;;;;;;;;;::::;;::::;;;::::::::::::::::::::;SS%@#########@@@@+:::::::::::::::;;;;;;;++***+
++++++++;;;;;;;;;;;;;;;;;;;;:;;:;;;:;::::::::::::::::?@S*########@@@@@@#;:::::::::::::;;;;;;;+*?%%%?
*+++++++;;;;;;;;;;;;;;;:;;:::::::::::::::::::::::::::%##%%####@##@@@@@@@?:::::::::::::;;;;;;;;+*?%%?
*+++++++;;;;;;;;;;:;;;;;;;::::;:::::::::::::::::::::+##@S?####@@##@####S?::::::::::::;;;;;;;;;;+?*++
++++++++;;;;;;;;;;;;:;:;;:::::::::::::::::::::::::::+S#@S?####@##@@?;+;::::::::::::::;;;;;;;;;;*?+++
+++++++++;;;;;;;::;::::::::::::::::::::::::::::::::::%#######@@@@@S:::::::::::::::::;;;;;;;;;;+?*+++
++++++++;;;;;;;;;;::::::::::::::::::::::::::::::::::;S###########@?::::::::::::::::::;;;;;;;;;+?++++
++++++++;;;;;;;;;;;:::::::::::::::::::::::::::::::::*##############+:::::::::::::::::;;;;;;;;+*+++++
*++++++++;;;;;;;;;;:::::::::::::::::::::::::::::::::S@############S+:::::::::::::::::;;;;;;;;**+++++
++++++++++;;;;;;;;::;::::::::::::::::::::::::::::::+#@####@@#####@S:::::::::::::::;;;;;;;;;;+*++++++
+++++++++;;;;;;;;;;;:;:::::::::::::::::::::::::::::%@############%;::::::::::::::;;;;;;;;;;;**++++++
*++++++++;;;;;;;;;;;:::::::::::::::::::::::::::::::;%@##########*:::::::::::::::::;;;;;;;;;+?+++++++
*+++++++++;;;;;;;;;;;;;:::;:::::::::::::::::::::::::;S@@@@####@#:::::::::::::::::::::;;;;;+**+++++++
+++++++++++;;;;;;;;;;;;;;::::::::::::::::::::::::::::?@@@@@#####*::::::::::::::::;;;;;;;;;**++++++++
**+*++++++++;;;;;;;;;;;;;::::::::::::::::::::::::::::+#@@@@@###@S;::::::::::::::;;;;;;;;;+?*++++++**
**++++++++++;;;;;;;;;;;;;;;::::::::::::::::::::::::::;#@@@@##@@@@*::::::::::::::;;;;;;;;+**+++++**?%
****+++++++++;;;;;;;;;;;;;;;::::::::::::::::::::::::::+*%%%++SS%?;:::::::::::;::;;;;;;++*?*+**??%%SS
*****+++++++++;;;;;;;;;;;;;;;:::::::::::::::::::::::::::+??*;+?**;::::::::;:;;;;;;;;;+????%%%%SSSSS%
****++++++++++;;;;;;;;;;;;;:;:::;::;;:::::::::::::::::::;??*;;?**;::::;::::::;;;;;;;;+?%%%%%??******
****++++++++++++;;;;;;;;;;;;;;;;:;:::::::::::::::::::::::***;;*?*;:::::::::::;;;;;;;;;*%***+++++****
*****+++++++++++;;;;;;;;;;;;;;;;;:::::::::::::::::::::::;****+***+:::::::::::;;;;;;+++***+++++****?S