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