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