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