===+***+*++=--+*?????????%#@@@@@@@@@@@@@@@@@@@@@@####@@@@##%?*******************
=-=+***++=+=====*????????S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%?******************
===++***=---====+???????S@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@#%?*****************
===++***+------=+*????*%#@@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@@@#%?************+***
===+****+=-;---==*?***?#@@@@@@@@@@@@@###SSS##@@@@@@@@@@@@@@@@@#??**********+++++
===+***++++======+++**S###@@@@@@@@@#S%%????%S##@@@@@@@@@@@@@@@@#?*******++++++++
===+****+**+==+====++*?S##@@@@@@@@S%?**++**??%S###@@@@@@@@@@@@@@S?****++++++++++
===++******++==++====**?%#@@@@@@#%*+=====++**?%%SS#@@@@@@@@@@@@@@S****++++++++++
===++*******++=======+*?%%#@@@@S?+==---===++***??%S#@@@@@@@@@@@@@@%***++++++++++
+==+*++******+===+++*++*??%S##S?+=------===++***??%S#@@@@@@@@@@@@@#?**++++++++++
+=-=+*********+++++*?%??%??%%%?+=--------===+++**?%S##@@@@@@@@@@@@@S**++++++++++
+==++*********++*++*?%%SS%%??*+=---;;;;---====++*??%S##@@@@@@@@@@@@@?*++++++++++
*++*?**+****+++**+++*%%SSS%?%*+=--;;;;;---==+?%S#######@@@@@@@@@@@@@S*++++++++++
?**?%?*++*++=+**++***?SSS#S%%?+=-;;;;---=+?%S###SSS##@@@@@@@@@@@@@@@@%*+++++++++
?**%SS%?*+++=+****?????%S#@#%*+-------==*%S##S%??%%S####@@@@@@@@@@@@@@?*++++++++
?**%SSS%?**+**??????*++?S#@#%*+========*?SSS?++*?%SS#####@@@@@@@@@@@@@@?++++++++
??*%SSSS%??*?????%%%?*++*?SS%?????*+==+*?%%*===*%S########@@@@@@@@@@@@@S*+++++++
??*%S#SS%%???????%%S?**++*%%SSSSSS%*===*??*++**S#@@@@@##S##@@@@@@@@@@@@@?+++++++
??*%SSSS%%???????%%S%%%?++*%%??????*+==+??**?SS@@@@@@#S%%S#@@@@@@@#SS@@@S*++++++
??*%SSSSS%??%%??*?%%%SSS??%?*+++*??*+--=*?*+SS*%##@@#S??%S##@@@@@@S#S#@@#?++++==
??*%#SSSS%%?%%%????%%SSS%S%?****?%?*+-;=*?*+?*??%SS%?**?%S#@@@@@@@####@@#%+=====
%??%##SSS%%%%S%???%%%S%%S#%????%#@#?=-;-*?*===++++++++*?%S##@@@@@###@#@@#S+=====
%??%#SSSSS%%%SS%%%%%???%%%%??%?%#@#?=-:-*?*+========++?%S####@@@@@##@#@@#S*=====
%??%##SSS%%%%%%S%%%S%***???????*%%?+--:-*??+==----==+*?%S####@@@#@@@#@@@@S*+++++
???%##SSS%%%?%?%%%%S%*++??%?**???*+=--:-*%?*+=----=++?%SSS###@@#@@@##@@@@S??????
%%?S#SS%%%??????%%%%%*++?%S?*+++==----:-*%%%*==--==+*?%SSSS##@@#@@@#@@@@@#%%%%%%
%%?SSS%%%??????*??????++?%%?+===-----;:-*%SS?+====++*?%SSSS##@@#####@@@@##?*****
%%?%SS%%%??????*??*???**???+==-------;;=?%SSS*====+*?%%SSSS##@@####@@@@#S#*+++++
%%?S#SSS%%????*??%????*???**+==--------+%%%SS?===++*?%%SSSS##@@#@@@@@@##%#*+++++
%%?S#SSSS%%%???***%*?**%%?*?+==------=+?%#@SSS+==+**?%%SSSS###@@@@@@@@##?#*++++=
%%?S##SSSS%%%%?*?+****??%%SS?+==-----*S?%####%*+++*?%%SSSSS###@@@@@@@@##?#?+++==
%%%S###SSSSS%%??%==+**?%S%SS?*+==-----+=*?%%??*++**?%%SSSSSS##@@@@@@@@#S?#?+++==
%%%####SSSSSS%%%S%=-=++*?%S%S%+==---;;;;=+????****??%%SSSSSSS#@@@@@@@@#S?S%+++==
%%%#####SSS%%%S#####%+*????-?#?+==--;;-+?SSSS%%????%%%SSSSSSS@@@@@@@@@##%S%*++==
%%%#####SSS%SS####@@#S???*;=?#S*+=----?%SSS####S%%%%%SSSSSSSS@@@@@@@@@##%%??++==
%%%#####SSS%S######@@#%?=;=?%##S*-;--*S########S%%%%%SSSS%%%#@@@@@@@@@@#S%?%++==
%%%#@###%*+*?%%%%SSSSSSS%%%SSS%*;:=?=%S%?***?SSS%%%%SSS%%%%S@@@@@@@@@@@##%%?*+==
%%S#@##%+==?#@@@@@@@@@@@@@@#S+;;-+?*+*+==**?SSSS%%%%S%%%%%S##@@@@@@@@@@@%#S%*+==
%%S#@##%=*?S@@@@@@@@@@@@@@@S=;-=*??+++*??%%SSSS%%%%%%%%%%SSS#@@@@@@@@@@@#S#S*++=
%%S#@##S*%S################*=+*?S@#?+=+*%SSS%%???%%%%%%%%SSS#@@@@@@@@@@@####?+++
%%S@@@##%%%#SSSSS###==+=-*%?**%@@@@@?+=====++**??%%%%%%%%SSS##@@@@@@@@@@@S#@#*++
%%S@@@###SS#SSSS#@@S:;;;=????S@@@@@@#?==--=++*???%??%%%%SSSSS#@@@@@@@@@@@#S#@#*+
%%#@@@#####SSS%S###=,:;=*%%S@@@@@@@@@@?===+**??????%%%%%SSSSS#@@##@@@@@@@@#%S@#*
%%#@@@#####SS%S###S:,;--+*%#@@@@@@@@@@@%***?????%%%%%%%%SSSSS#@@#S##@@@@@@@#%%@#
%%#@@@#####SSSS##S+,::;-+===+*%S@@@@@@@@@#S%%SSS%%%%%%%%%SSSS#@@SSSS#@@@@@@@#??#
%S#@@@####SSSSS##*,,:;-====-===+?S%%#@@@@@@@##SSS%%%%%%%%SSS##@@%%SSS#@@@@@#S???
%S#@@@@##SSSSS##*:,:;-++**+++==++??%S@@@@@@@#SSS%%%%%%%%%SSS#@@#%%%%SS##SS%%?*++
%S@@@@####SSSS#*,,:;=++*S@##SS%+++++*#@@@@@@#S%%%%%%%%%%%%SS#@@S?%%%%SSS%??%?*+=
%S@##S%??*?%SS+,,:-=+*?S@@@@@@S??+++*#@@@#@@#S%%%????%%%%%SS#@#???%%%%SS%***?+==
*+=-;;:::-?%+:,:;-=+-=*S@@@@@@%%%%??S@@@#S#@@#%%??????%%%%SS#@S**???%%%%%*++*+=-
:::::::;=+??,,:;-;::;---+?S@@S%S%%?%@@@@%%#@@#S%???????%%%S###?+**????%%%*+++=--
::::::;;-=+=,::::::;-======*S?%SS%%@@@@#+?S@@@S%???????%%%S##S+++***?????+++==--
::::::::;-=:,,::;--=+++++++*???%%%@@@@@%=*%@@@#S%???????%%S##?==++********+===--
::::::::;-;:::;;=++?%%S%%?***?**?#@@@@#+-+?#@@#S%%???????%S#S=-==++********+=---
::::::;-=;::;;-+*?%SSSSSSS%%%???%@@@@@S-;=?#@@##S%%???????SS%--==+++++++++*=----
;:::::;=+=;;;=+??%SSSSSSSSSSSS%?@@@@@#+;:-?%@@##S%%?????*?%S+;--==++++++==+=----
;;::;--=++-;-+??%SSSSSSSSSSSSS%S@@@@@%-::-*?#@##S%???*****%%;;--===++++=====----
::;--====*---+?%SSSSSSSSSSSSS%%@@@@@#+:::-**S@##S%??**+++*?+;;--==========-+---;
-========*=;=*?%%SSSSSSSSSSS%?#@@@@@%;::==**?##S%%??**++++*-;;---========--+=-;;
+++++====*-;-+?%%SSSSSSSSSS%?%@@@@@#=:=%@*+**S#S????*++=====%S%*+=-====----==-;;
++++======:;-+?%%SSSSSSSSS%%?#@@@@@%-*%S@S=+*%#S%???*++===-+%@@@@#%*==-----==;;;
++++=====::;-+*%%%SSSSSSS%%?%@@@##%*%%%%#@%+++*SS%?**+===-=*S@@@@@#%?*+==---=;;:
++++=====,:;-+*?%%SSSSSS%%??@@@@#%%%%%%%S@@S?*=?S%??*++=-=+?#@@@@@%?*+=====--;;:
+++=====-,:;-=*?%%%SSSS%%?*S@@@@#S%%???*+#@#@@*-%S%?*++--=?S@@@@@#%?*=------;;::
++=====+;,:;-=*?%%%S%%%%?*++*%SS%%?**++=-?##@@*-+SS%?*=-=*%S@@@@@S%%+-----;;;:::
++====++:,:;-=*??%%%%%??*=--====-----=---=S##@*-=*SS%?==+?%S@@@@@%%%=-;;;;;;::::