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