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