%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%%%%%%%%%%%%%%%%%%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?%%%%%%%%%%%%%%%%%%%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%************************?S%%?%%??%%%%%%%%%?%%%%%??%%%%%%%%%%%%%%%%%%%%%%%%%%%
%S?=++++++++++++++++++++++=+S%*?????????????????????+%%%%%%%%%%%%??%%%%%%%%%%%%%
%%?+=++=-===============+=++S%*%?????%?????????????%*%%%%%%%%%?*+***?%%%*****?%%
%S?+=++=-============-==+=++S%*%%%%%%%%%%%%%%%%%%%%%*?%%%%%%%?+++++++?%%******%%
%%?+=?+?**?=***?*=?+++**?*++S%*%%%%%%%%%S%S%%%%%%%%S*%%%%%%%%*+++++=+*?%+*****%%
%S?++%?S??%%%??%?*%%*????%++S%*%%??%%S%%%%???????%%%*%%%%%%%?++==*++=+?%+***+?%%
%S?+=+-*+++=+++*++=++*+=*+++S%*%%??%%SS%%??%?????%%S*%%%%%%%%++==++==+*%+***+*%%
%S?+========-=?%?=-=======++S%*%???%SSS%%%%%?????%SS*%%%%%%%%*+===+=++?%?%%%?%%%
%S?+-++=++=-=%?+**=-=+====++S%*%%%%SSS%%??%%%%%?%SSS*%%%%?*??*+++==++*??**?%%%%%
%S?+-=====-==%??*?==--===-++S%*%S%S%SS%????%SS%%%SSS*%%%%+=+****+++**?*?+==*%%%%
%%?+-========*?+?*===++++-++S%*%SS%?%SSS%??%SSSSS%%S*?%%%+=+********?SS#?++*%%%%
%S?+-========*SSS*===+++==++S%*%SS%%?%SSS??%SSS%S%SS*%%%%+=++++*****%SS#S*++%%%%
%S?+-======+%SSSS?+==++++=++S%*%SSS%%SSSS%%%SSS%%%SS*%%%%+=++==++++?SSS#%=++%%%%
%S?+-==+====%SS%%S?==++++=*?SS?%SSS%%SSSS%SSSSS%%SSS*%%%%+++====+*%%SS#SS%++%%%%
%S?+--+?*====+???+===++++%#####SS%%%%%%%%%%%%%%S%SSS*%%%%+++===+?%SSSSSSSS%*%%%%
%S?+-=***==============+S########SS%%%%%%%S%SSS%%%SS*%%%%+++==+%%%%%%SSS?%S%S%%%
%S?+==+=++====++++=====%###########S%?%%%%%SS%%%%%%S*%%%%+===-+?????%%SS+=+%SSS%
%S?+==++++====++**+=++?############SSS%%%%S%%%%%S%%%*%%%?==-;:::-=+*??%S+==+%%SS
%S?+==++++====++++==++S##@###@#####?##%%%%SSSS%SS%%%*????-;::::::::-+?%%+==+%?%S
%S?+==+++*====++*+===*S##@@@#####S?=%S%%%%%%%%%%%%%%*??*=;:;;::::::::-*%=-=+??%%
%S?+==++++====++++===+S##@S#@@@#?+==?%%%%%%%%%%????%++=--;;;;::;;;;::::--==+????
%S?+===========+++====%##S*?##%**%S???%%%%%%%%%%%%?*-----;;;;::;;;;:::;;--=+????
%S?+=+=========+++=+=+%###?%S%*++*?*%%?%%%%%%%%??*==------------------==++**????
%S?+++++==========++=+?###%?#S**====??%%%%%%%%?*+===----------------====++***???
%S?+++++==========??==*SS%?#@#?*+=*+?%%%%%%??++=====---------------====++****???
%%?+==============+*=**????####%?S#%%%%%%??*++++====------------====+*%*++****??
%%?+=++++++++=======?S**???%#@##S%%%%%%%?*+=========-==---------=-;;:+S*+*****??
%%?+==++++++======+?SSS+*?**%#@##S?????*++++++=====+-====------=-:,,:*S*+*****??
%%?+=+++++++++===*SSSSS%+****%%##S%??*+++++++++=====-=======---=:,,,:%S?+*****??
%%?=============?SSSSSSS?==+*?+????*++++++=+========-=========-=:,,,-%S%******??
%%S%%%%%%%%%%%%%SSSSSSS%%=::*?*+++++============-=---======+===-,,,,+SS?******??
%%%%%?%%%%%%%%%SSSSS%%%S?*;+?*?********++++++==--========+++++=-,,,,?SS*******??
%%%%%%%%%%%%%%SSSSSS%%%%%?==S+********===++==----=======++*+=+=:,,,;%S%*******??
%%%SSS%%%%?%%SS#SSSS%%%%%?+;%+=*******=--=--------=====++**+===:,,,=SS?*******??
%%S##????**??SS#SSS%%%?%%%?;?*-*******=-------=---======+*+*===:,,,*SS*******???
%%S##%????**%SSSSSSS%%*?%%%=??=?*+=--=---=====+=-----+=++++*-=-,,,:%S?****?*????
%SS##%???***%SSSSSSS%%???%%**?***+-----===----++=----+++++=+-+;,,,-%S%?***??????
%%SS#S???**?SSS##SSS%%%%?%%?*%***+=-==-+-=----++====+++++++*++:,,,+S#S%***???%%?
%%%S##%????*SSS##SSSS%%%%%S%?%?**?++==-+-=-===+++++++++******=:,,:?SSS?***??%%%%
%%%SS#S??***SSSSSSSSSS?%%%S%?%%+?????????****+****+++++******-:,,;%#SS?*????%%%%
%%%%S##%****S#SSSSS%%%?%%%%%?%%?**+++===++**+++*++++*+*******=:,,=S##S%?*???%%%%
%%SS%S#S?***%SSS#SS%%%??%%%S?%%%****++++***+******++***?****??+:,*SSSS??*???%%%%
%%%%?S##%***%SSS#SSS%%%*%%%S?%S%+***+++++**********+*??***?*???*;%SSSS?%???%%SSS
?*++*SS#S***%SSSSSSSS%%+%%%S%%SS%+=+++====*?***++=+=*??***?****?%S%SSS%%???%%S%S
?++++%S##%%?%SSS##SSSS%+%%%S%%SSS?*==+-===+****++*+**??**++=-==-+?+SSS*?+++?%S?%
?++++*S##SSSSSS#S#SSS%%*?%%%S%SSSSS%S%??%?*++=+*?%?**????**+===+===S#S+?++=?%S%%
?+++++SS###SSS##SSSSSSSS?*?%%%%%%%%%%%%SS%*=+++++++???*===+*+++++++S#S*+%?*%SSSS
%+++++%S####SSSS#SSSSSSS%**++=+****???**+++++++*+*?%%??+==-=****???SSS??%?%%%%SS
%+++++?S######SS#SS#S#SSSS%%%%%%%%%%%%+++++**??S%???????+=-=??%%%SSSSSS%%%?%?%SS
%++++*?SS#####SS##S###SSSSSSSSSSSSSS%%+????%%??%%%%%%%%%S*+=*SSSSSSSSSSS%??%%???
%+++***%S#####S#S#SS##SSSSSSSSSSSSSSS%**+++++++%SS%??*%SS%*==+***???????????%%**
%++++++?S#####SS###S#SSSSSSSSSS##S%++++=;;;;;;;;-%S##S%-;;:;;;;-=+**?%%%%%%%%%??
?++++++*S#####S######SSSSSSS##SSS%+*?*-;;;;;;;;;;+????*=--;:::;;;;=+*????%%%??%%
%+++++++SS####################S#S+*?????????????*;;;;;;-==+++++;;;;=+*?%%%%%%%%%
%+++++++%S###SSSSSSSSSSSSSS%%??S++*?????????????*------;;;;;;;--;;;;++++++++++++
?++++???SS#SSSSSSSSSSSSSSSSSSSS*++++++++++++++++++++++++++++++++++++++++++++++++
?+++++++%S#%########SS##S#SSSSS%%%%%%%%%%%%%%%S%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
?+++++++%SS%##S#S####S#SSSS%%?SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
?+++++++%SSS##S#SS###S#SSSS%%?SS##SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
?+++++++%SS###S#SS##S##SSSS%?%SS###SSSS###############SSS#S%%%%%SSSS%%%%%%%SS%%%
?+++++++%S####S#####S##SSS%%?######SSSS################SSSS?????SSSS???????SS?%?
?+++++++*S##########SS##SS%%?S#####SSSS###############SSSSS?????SSSS???????SS???
?++++++++%S######S##SSSS#%%?S######SSSS################SSS%*****SSSS*******%S***
?++++++++*SS#############%%?#######SSSS################SSSS?????SSSS???????SS???