??????S##%?****?S%%%**?**++**?%%?+****?*+**???%%%%????*+++?%%%??%%%*+**?%?***???%%SSS###SSSSSSSSS###
%%????%%%??**??%%?%%******??%%%%?+;+*+++++*??%%%%*++++++++++++*****++++++++**********??????%%????%%%
???*?%%%%%?????%S%?%*+*?****?%%%??*****+++++*%%%%%?++********************************?????????????%%
****?%%%%%SS%???%S%%*++*+;;;?SS%%?*****+++***%%%%%*+****++++++++++++++++++++++****************??????
****?????%SSS%?*%###S%****+*?%??***++++******++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++*+******
??????%%%%%%%???%%%%%?????************??????******?????*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++*****
%%%%%%%%%%%%%?%%%%%%%%%%%%%%%??????%%%%%%%%SS%%%SSSSSSS%*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++****
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS#SS#S#S###############SSS%+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++****
SSSSSSSSSSSS%%%%SSSSSSSSSSSSSSSSSSSSSSSSSSSS#########S?+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++*****
**++++++++++;;;;;;++++;;;;;;;;;+;;;+;;+++++++++*S#?+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++*+***
*++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%##%+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++***
*++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%###S%?+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++***
++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::*@######%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++*
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;*?S#####S*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++
*+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;???*%###%;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++
++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;::*???%S*;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;+++++++
+++++;+;;;;;;;;;;;;;;;;;::;;::::::;:::::::::;*%%%%?***;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++
+++++;;;;;;;;;;;;;;;::::::::::::::::::::;++*%SS%%%%%%%*;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++
++++;;;;;;;;;;;;:;;;::::::::::::::::;+**?%S####SSS%%%%%*;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;+;;+++++++
++++;;;;;;;;;:;::::::::::::::::::::;%##########SSS%%%%%%;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;++++++
++++;;;;;;;;:::::::::::::::::::::::;%@#########SSSSSSS%%*:::;::;;;;;;;;;:::;;;;:;;;;;;;;;;;;;;++++++
+++;;;;;;;;;;;::::::::::::::::::::::;?S########SSSSSSS%%%+::;;;;;;;::;;;;;;;;::::;;;;;;;;;;;;;;+++++
++;;;;;;;;;;;::::::::::::::::::::::::::;;+?++S#SSSSSS%%S%?;:;:::::;::::::;;;;:::::;;;;;;;;;;;;++++++
++;;;;;;;;;;;;:::::::::::::::::::::::::::::::?#SSSSSSSS%%%*::;:::::::::::::::::::::;;;;;;;;;;+++++**
+++;;;;;;;;:;::::::::::::::::::::::::::::::::;S#SSSSSSSSS%%;:::::::::::::::::;::::::;;;;;;;;;++++*?%
++;;;;;;;;;:::::::::::::::::::::::::::::::::::?##SSSSSSSSS%*:::::::::::::::::::::::::;;;;;;;;;++???%
+;;;;;;;;;;:::::::::::::::::::::::::::::::::::;S#SSSSSSSSSS?;::::::::::::::::::::::::;;;;;;;++;*%%%%
+++;;;;;;;;:::::::::::::::::::::::::::::::::::;S######SS##SS*::::::::::;:::::::::::::;;;;;;;++;*????
++;;;;;;;;;:::::::::::::::::::::::::::::::::::?#S##########S?::::::::::::::::::::::::;;;;;;;+++*????
;+;;;;;;;:;::::::::::::::::::::::::::::::::::;S############S?:::::::::::::;:::::::;;;;;++++++++*????
+;;;;;;;;;::::::::::::::::::::::::::::::::::::?###########S+;:::::::::;++?*+++++++++++**????***?????
+;;;;;;;;;::::::::::::::::::::::::::::::::::::?###########+::::::::::;*?%%*+*????????????????*??????
++;;;;;;::::::::::::::::::::::::::::::::::::::S##########?::::::::::::;**+;;;;++++++;+;;;;;+???????*
+++;;;;;;:;::::::::::::::::::::::::::::::::::+##########%;:::::::::::::::::;;;;::::::;:;;;;;+??????+
++;;;;;;;::::::::::::::::::::::::::::::::::::%#########?::::::::::::::::::::::;;;;:::;;;;;;;+???????
+++;;;;;;;:::::::::::::::::::::::::::::::::::?########?::::::::::::::::::::::::::;;+;;;;;;;;+???????
++;;;;;;;;;;;::::::::::::::::::::::::::::::::;S#S#?%#S?;:::::::::::::::::::::::::::;;++;;;;;+????%%%
++;;;;;;;;;;;::::::::::::::::::::::::::::::::;SS%S+;##S;:::::::::::::::::::::::::::::;;+**++*???%%%%
++;;;;;;;;;:;:::::::::::::::::::::::::::::::::?S?*;:?%*;:::::::::::::::::::::::::::;;;;;;+????%?%%%%
+;;;;;;;;;;;:::::::::::::::::::::::::::::::::::;+;;:;+;::::::::::::::::::::::*%%%?**++***+***?%%%???
+++;;;;;;;;;;;::::::::::::::::::::::::::::::::::++;::+;;:::::::::::::::::::*S###%?????????+++*?%%%%%
++++;;;;;;;;;;;:::::::::::::::::::::::::::::::::;+;;;+;;:::::::::::::::::*S####*::;;*%%%%**+++**?%S%
+++++;;;;;;;;;::::::::::::::::;++;;++;;;;;;;;:::;+;;*?+;:::::::::::::::+S#####%**++;?S##S%***?????%%
++++++;;;;;;;;::::::::::::::::;;***++*+++++++;++++++??*+;;;;::::::::::*####@#*+????????%%%?**?%%%%%%
+++++;;;;;;;;;;::::::::::::::::::+*???*??*??*???***+++++;;::::;;;;::;%%#SSS%+;+?%%%%%%%%%%?****??S##
++++;;;;;;;;;::::::::::::::::::::::*%%????%%?%%?%?%?????****++++++;?##S??*+;+***??%SSSS%%SS%??????%%
++++++;;;;;;;;:;::::::::::::::::::::+**???%%%%%?%%%%%%%%%%%????*+*?S##S***++++?****??*******++++++++
+++++++;;;;;;;;;;;:::::::::::::::::::::::;;;++***????????%%%%%S%+?%%%%?***++++++**?*+;;++++++++++***
*++++++++;;;;;;;;;;:::::::::::::::::::::::::::::::::;;+++**???%%%%%%%%%?*++++++++++++++++++++*******
*++++++++;;;;;;;;;:;:;::::::::::::::::::;::;;:;;;:;;;;;;;;;;;;;++++++++++++++++++++++++++++*********
*++++++++;;;;;;;;;;;:::::::::::::::::::::::::;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++++++++++++++**********
*++++++++;;;;;;;;;;;;:::::::::::::::::::::::::;;;;;;;;;+;;;;;;;;;;;;;;;;;;;+;+++++++++++*+**********
**++++++++;;;;;;;;;;;:::::::::::::::::::::;;;;;;;;;+;;;;;;;::;;;;:;:;;;;;;;;;;;;+++++++++++*********
**+++++++++;;;;;;;;;;;::::::::::::::::::::::::;;;;;;;;;;;:::::::::::;;;;;;;;;;;;;;++++++++*********?
****++++++;;;;;;;;;;;;;;;::::;::::::::::::;;;;;;;;;;;;;;;;;;;::::::::::;;;;;;;;;;;+++++++++********?