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