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