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