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