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