+++=+=+++=+=++++=+++=++=+=+=+++++=+=+=+=++++++===========+=+++============+====+==+=+=+=+=**+*+*+++=+============+===================-=-=====-=-=======+%
+==++=+=+===+=====+==+=+===+=+=+====+==+==+=+===+=+=++++=+=+==+++=======+=+==+===+=+=+====+=++==+=+====++====+=+============-==-=-=-=--=-=-=----====+%
=+==+=+==+========+=+=+=+==+=++======+===+======+===============+======+=======+======+==========+====+====+=+============+======-=====--=-=--=-=--=--====%
+=+==+==+===+================+==++++=+++==+==+++=======+====+===================+=========================-===========-=====---==-=--=----===-==-=---=@
+=+=+=+===+==+=====+=+=====+=========+========+======+=+==++====================+====+==+===========-=-=============-===-==-=-==-==-==-=--------=====#%
+=======+=++===========+=+=+==+=+=+=+=+=+=======+=================================================================--=====---=-=-=---==-=-===-=-=-*%%
=++==========+=====+===+========+==============+==+=+==+============================+================-=--=====+====-=====-==-===-=-=--=--=--=-=-=*@#
+===+=+=======+===+=========+=++=========++====+===+================================================================-=--=-=---=-----==----=-=-=-==-+#
+=====+=+=+====+===+===+==+=====+=+==+=+====+===+=============================-===+===+===========-===+=====-=--======-=--==-===-=-==--=-=-=--=##
=+=+=++====+==+====++===+====+=++=+===+=+==+========+==========-==============+============+========-========+=======-=-=-====---=----=--==-=-=-=--=#%
+==+====+===+===+=+=======++=+===+=========+=+++=+++===========-==========+=========-=-================-=======+====-==-===-=-=-=-------=--=--=---==-#%
=++====+=======+==+====++=+====+++++=++=+==+========++===+=====================================+==-===========-=-====-==-==---=-==------=--=----=--*##
=+=++====+++++=======+=+=+++=++=++=+===========+=+===+=+=+========-========-===========--====+=======-======-==============-=-=--=--===----==-==---=---=---#
++=====+=============+===+=====+==++=++=+=++=+====+=++++++======+==-=====-============-========+==========-======-=--==-=-=-===-=---===-==--==--=-=-===**#
=====+====+==+====-+=-==-==-+===+===+=++==+====+=+===+=======+=-==+=====-==================-+-============-==-=====-=-===------===--=-=---=-=-=-=-==-##*
==============-+-=======+==-======++==+==+======++==+++==================+=============-==-=======-=-=-==-==========----=-======--=-=---=----=------=%*
+====--========-=======-=+=======+==+=====+=+======++==-=-=====-=-======================-==========-=====-=-===-=-=--=-*-------=----====-======-=#
=-==-====-=-=========+==-==-=======+===+==+===+====+===========-===+=======================-===-====-=-=--=---=-=-=--*==----=------=-==-----+#*#
==+-=---=-=-+-==--======-=-=--=-====-=======+==================-====================-===========-===-=-=====-==-==-=--=*#-=--=-----=--=-==-==--=#%##
+-==-===-===-===+==+==============-=--=========+========+=+====================-=======-=-==-==---====--==--=--=--==#---=-=====-=--=-=----###
==+-=-=--=+========+==-=-===+====-=-====---+=====+======-==-=-==-=============================-==-=-=-=--===-=-----=-----#+====-=-=--=--=--=---==--*#%
==-=+===-====+====+=+==============--=-======================================-=====-==-==-======-=--=-==---=-=-=---=-==#%-=-=-===--=-=---==-+##
=+=+==--===-+===+===+==+=+=+=+=+==+-====--====-==++==-===-===+=--=---========-==================--=-==-=-=-===-----=-=---=%##+-=--===---=-=-=--=-==---#%**#
=+=-=========+===+====+=+==+===+=========+=+===============-====================-====================-=-=--=-=--=-=-=----=---%##+--=---=---==-=-=---=-**%*#
=====-=-===+===+=+==============+=+=+====++====+===+===-=====-====-=-================-======--=--==--=-----=---==-=--=-%**-=----------------=-+*##*#
++-====+=+==+==+=+=====+===+=============+=========-=-==-==-=-=====+=================-========-=-=--==-=-==--=--=---*%#*#----------=-------=-=%#*##
===+=====+===============+=+===+++=+=++====+========+====-======+==+====-=-=========-======--=--------=-=-==---===----=*%##*==---------:-=----=-==*##@
+=++===+==+=+==+=+=+=+=++=+=+=+===+=++=================-===-=-======-================--=-===-===--=------=-=---=-----=#**++==--------:---=---+#*%%
+=+=+=+===+==+=+=====+=+=+=+=+====+==============+==-======-========-+==+=-==============-==-=---==--=--=-=-=----=-=-==-=-++=++---=-------:=---------##%#
=+=========+===+=++=+==+==++==+=+=++====+==+=========-=====--==+-===+===================-===-=-=-=--=-=------==-=--=----==-*=*-=---------=--=----=-#*%%
+=+====++=+=+=+====+=++==+==+===+=======+=============-+-===+==+=====+==========-=-=----=---=----=--=---=-=----=---=-*++=+=-:----:-=--==-=--::--##%%
+=+==+=====+=+===+=+=++==+==+====#=+===============-=-=========-=================-=--==---=--=--=-=-=-=-=-==-----=------#*=+++=---------=------:-----#%%
++=========+=++++=+=+====+==+==+=*======+======-=====-====-=======+-====-==-===------=---=-=----=---=------=---=------==++==-:----------=----==---*%%%
+=++===+==+=====+======+=++=+==+=+=*==================-===-=========-===========----------=----=-=-=-=------------:-#++++=---------:-------=-%#%#
===========+=+=+===+%*+====+=++==+=======-=+==-==-=+===-=-=-=====-======+=======--=--=---:-----=-=------=--------------%+#*%%=---:------=--=-=------%%#%
+=+===++====+===+====++==++====+++==================-=--=-=-====-=-======-=----------------------------------------------#-#%*+=----:--------=--====+%##
===+==+====+=++==+=+=+=#==+===+=+==*===-==+=-==-=====+=====-=-====-=-=======-====---=-----=--=--------=-=-----=-==------:----#+-+++--------=-==--=**=-=-*#%##
+===+++=+===+=+==+=++=+==+=+=-=-+*-=-=--==+-------=-=-===-==-=-===-==-=-=-=--=--=-=--==----=--------------------:----*+++=++=-:--:----=-=-=-+-=-=*%%%%
=+===++=+++++=+=++==+++===+=====+*====---*---------======--=-===-==-===-===-==------=-=--------=--=----=-------:#+++*++=---:-.::-:---=#+-===*%#%#
======+==+=+==+==++#+=+**+++=+=+#-==-=--=-+=-------=-=-========-===-=====-=======-=---=-=---------------=-=---------------#+++**=--:-----:-:-:*===*#%%%#
+======+=+=+++=++=***#%+==##*#*===+*=-==##-==---=--======---==--==-=-==---==+-=======---=-=----------=-=-=----=--------#++++++=-.::.:.:-:-----%+*#%%##*%#
#+++===+==*=+++#*#%=+*###****+**==-=-+=-=+:-=-----=-========-====+===-=-=-=-====-==--=-=-=-=-=-=-------------------------#+*+**+=----.---:-:----=##%#*#%%#
#**+==+=+*+**+*#*#*%*#*+*##*#%%+##=-==-==+--==--=========-===-=-==+=-=-=-=-==-=+-====-===---=---------=------=------------#+***+=--:::.---:--+*#*#*%##*#%*
***++++*##+####*%%%#%%%%*%#%%%%*+%***+++-=*----====-=-+=======-=-===+=======+======--=-=-=-=--=----------------=-=--------#*+*+++=--::.---=+%%*%%%##*=##%
=#**#%#*%%%%############%##%=*#*=#*#++#=-=-==========-======+===-==+=-+=+========-====--=-----=------=--------------%+*#*+=-::-::---=%*####%#*%*##%#*
****##%####%%##*%%####*###%##%=#===+++-#+*=-====+==+========-=======-=============-=--=====--===--=-----:--------------%++**=----:---*%%#####+%#%%+
+++*#%*#%%###%%#*#%%#*##%%#*%#-=-:*#==%==%+==+-=-=-===-=-=========+==-=-==--==-+=--=-===-=----=-=---------------=---+**+*--------*#*##*###*=%#%#
#+*+##%*%*#%%#%##%#######%*###+===+-#==#====+=+======-========+===-==+-=---==+===---=-==-=-----------=-----------%*++*+*=---------+**#%#*####+=##%+
*##*%**#%%#%*#%*****###%####=*=:=**-:+-==+%#*##*+*====-========-+=========---=-=-===--=+-=-=------=---------=------------%+***---------+###*#####%+=#*#+
#*#+#*%#++%###**+**%+###*#%@%##*+=+##%++==-+=*##**==%+++=+=-++===+=====+=+=+=-=--==-==-=--==---=----------==--=--------%+#***=-------######*#%#++##*+
***#***#++#%#+=%=++*##*#*%%%#*=++=+#++=%===++**##+*+*++*+===++====+=+=-=-=----=====-=--==-------=----=-----+===---------%+*+++--------=##*#%%%%*%%++*##%
*=*#**+##**##%#++-+=+#####%####=++++*+++=#==+*+#*+#+#*#**##*===+==+==--==++=-==--=-=--==--==-===---=-----=-+++++#####*+**+**=+-=---*#%%@#%##%++#*%@
=++++#+#*##%+=+=*#*#*#*#%%%#=++++*++-*--*++*##**+%***#*++-+++=+==++=====+-=-=-=-=+=====-=-=======*===+*+##++==*+****###******==*+*====##*@@#%*##+#%#
-===++=+++*%++*=+=+*##*###***#%-*==+++==:#-==++***+++=##*#**=========+=+=++==============+=-=====-==-+**#*#**#**#*#*##+******##*+*+=*%%#%@%@%#%#=*%%#
=====+-=*=+==+++++#+#*###*###====++#=+#===*###:*+++%%%%#+=+++=+++=++=-+==+=++-+++==++=+=======+*%%#*+*#*#%#*#*###+##*******#%#%%%%%%%##@@#%###+*%%%
==**#%#*+**#=#**==+=+*##%%****#-++=-=+=+*#*+#+**:+==+###%%#*=+=+*====+=+=+=========+====+===+=======##%%###+##*#=++=+++=+=*#****+*++*%%%%#%##%#*%####%#
#*##*#**##*#%+++++#*+####*##=++=#*+-*-==++*#-=*=+%######=+=#=++==+=+=+=+++==++==++====++=++=*++%###%%##=*+#%#==+==+===***#*+*++%#@%###%##%@@%%##+%%%%%
#%%%%##%%%*##%*++#####*%%###=*-+*#+*=#*-#+**+-+####*##+++#+=+=+==+=+=#=+=++=+=#++++=*+*==+-#%###%%%*++%%=++=++==*###**#***++*%%#%%#%*#%%%%####+%%@%%
%%%%%*+%%%%%%*++%%%%%%%%%%%%*##%=#==+#+*#+*=+==**+==#+=#*%*#*=++#+++*+*+*=++=+*+**++*++%*++++**%==+*######@%##+*###-++=+=+*###*******#%#%%#%####%%%###%%%%%
%%%%*=%#%##+*%%@%%%%%****####=*==*#**+%=+-#+#*==+*####*#*=****#*#==+##++**#*++*=***#***####+:=#####%##%##++#**==#++--=*###******##%%%%%#%###%%%%####%%@%
%%%%***#%#*=%#+#%#%@%%%%%*##+#%#*+=+#++*=#==*#*=**=###*+#*#*####==++*#%%#+*+++****#**+==--=-=###%%%#%##*=++*=*+--==###*##**##@%%%%%##%%##%%##%%%%%%#
%#*****%*%*+###%%%#+##%%+#**##=*=+*++++#==#+*--++=#*###*++=+=++*++######%#=+*#****+***#+++-==-=%%%%%#%##%=++*#=+=*+%%%#*%*###%@%%%%###*#%##%**##*@%*@%
*#+#*#*+=##+%@###*#%#**#*%=*==##++=*===#+#**:=*=+##**#+=+==++**+*=###*####%##+*+++=+++===+###*####%%%#++#%=+==###*#*#%*#***##%%%@%*%###*@%%%####+%@%%
*#*+#*+***%#%++=#%%#*%##%@#++%#%#+*==*#-#=+#==*+%+*-*++*##*#+*=*##*#*#=########*=*=###++=#######%#%%%#=**%#=+*%%%#%#%+*##*#%@@%@@%##%#%%#%##%=%%%
#*#**##***+++**%#%##*#*+####+++==++=++#+=*##+==#+#+#####*++*###***#%#%*##*+*+==*+*++%#*##%#%=#####@%#**+*%#=+##*=+#+=*#*%%%@%#%%@@%##%%#%#%#%#%%%@%%
#+*#**=*=#++=+*#%@%%%#%#=*+#+++#=*=+=+++===*+=##+#+=%#****#*##++**###%%+**%#%####*%#+=#+++=+*%%##%%#%%#*%##%%%=++#%#==#*+++=+==+##%%%%%%%%%@%#%%##%%%*%#%#+%%@@%
##**+++*+=+%%%%%%%#**=#+**#*%%*#%%%#+*+*++=*##=++**#####*=+#*+###%+#%#%%*#%%#*+**+*#%#%%#*#####+###=**#@%==**----====*##%%#%###@%%#%%%#%%%%#=%%@%
**#**#++*=+*+%%%%%#*##=#++##%%++==++**#=====#+#*-=*+**#%*#+*##++%#%##%%#%#%#*##*=*++==#%###*##*##*###%##*#=*++#=+##=%#====+*%%@%%#%%%#%%%#%#%#%%%%*%##%@@%
##*#*+=*=*%%*#*#*+=++%++=*%*#+=***#**+=*%#%*-=+*+**######****###*###%##########*=++==+*#%##*######%#%*#%#*=*###=*%*+##-==*#%@%#%%%%%#@%%###**########+#@%%
#****+:-:--*%%##%%+--=+%#=--#%*#+=%#**#**+*#%##==+*=*****#+###%#*####%@###*######+@*#*###%#%########%%%#++%#*+*#+#*===*#%%%%#%#%#@*@%*%%####@%##*#*%@%%
*#*##+*----:=%#%*#%%#*+=+##+=:=%+*+=%##*##*=#%##=++*#*#*#***%####*#*##%##%%%#%#%*==+%*++###%###**#*###*%%##*%*#*#%++++++#%%%%#%#%%%#%#%%#%%%@%%@%%%#%%%%
****#*=%=++%@%%##%:-====--=%%#%%#%%%%%#**+*#%#%=##=*#*#*#+#+=###**#*#@*##%#%*=++%#+*%#*%#%###%*%#*#@%%#+#%*#+#=@#%####%%@%%#%###%@#*+%#@@@@@@%%%%%*%%@#
*##**#*+*+*%%%%###%+=#++**#+*=#%*+=%#*+%%#+#+*#%##+%*++#*#***#+=%#%%########*####+=*#++*#%##**#*###*#*#%#####%##=+#%=@*#####%%%#%%###%#%+###%@%@%%%%%%%*@%%#
=**#*#+*=###%@%#@%+#++%#*+*=%+@*++#%*+%=*#+#%#+*+=*+**#*%+%#**#%%###%##*%%%@%%@@%#%%#*##%#####*###%#*#%###%=#@=#*%##%##%##%%##*##@@@@@%@%@#%##*
=+####***=+++#%%%%##+#+*@+*++=*%*%#+++=#%+#*%%+**=*#++###*###%%%##%%#*##*######+*#%#%###%#*#%#%%%%%#**#%#%#*++%#=%%%##*%%#%###%%%%*%######%@%@@%@#@%%
%##*#%##--=*+*%%@%#++*=*@**%*++%=++=*+++*+***+*##*#%#+++==*%*%+%%+%@%@%#%+%%##%+**++#*+##*#*###%##@@%%%@%%%%%%*++++*#*+=*+##%%%+@@*%####%%%%%%@%%@@%*%%#
=*###*+====+=*%*%##%+=++#%#==++#%++++*#%%##**#@+*#***#%%#*#%##**#%##**%%%+%*###+#**+###%%###########*#*%%#*#+*+%%+*%%%#**#=+==++++######%#@%@%@%%%#%%
==###*+*+++=#%#%+#*#+*++++*#-===+%+=#+%#%*=*%*%#*+++#*##*+*%#####*##%#%###%%#*++##**##**##**####%#*@***@@%#*+%##%#%%%%+%+@%%====+%%%#**+#@#+*%%*%%*
=+***+=++====%%=====++#++=+%*++*++*#%%*#%#%#%%#*#+++###**##*#*#%#%#####%@*#**+*##*#########*#%#%*%%#%%%%%%*%%@%%%**%%%@@##%%%%###**+%@%+###%%%#
#+%#%*++===+#++#**%*=#*+#++*#%**++##*#@%#*#%%%++#*#*#*#+#####*###*#%%@%#***##*######**##%#*%+#%%%#+*+#*%+*##*#%*%#@#%%%%@@#@#%#++%##@%#%%%**###%###
##%%#**##*+**#%+#+++++#++++#%++*+**+##%%**++##%*#++###*##+**+**##*#%#***#**%%##*#**##*######*##***%%%%%@%%#%#**#*##%#*####%%%@%@%%%**%#*%@#########%%*
#+#%%++++++++***#=++++=#*+=+*@#++*++++*##%**+*%##*+*#%*%#@*#*+*+**##%#*#####%##%####+**#+####%###**#*###***#%####*+*##**######%##%@%@%%##%**##%@@#%%#%+##*#%#
%**=*%*+++++=+###*#*#*++++#++***%#+++++++++####+*#*##+%+*+#####**+#**######**#*####%*****####*+*###***#####***#*##**##*#%*#***#%%%%@%%%%#%%**#%#%%%@%*%*##*#%##
%##=#*#++=+++*#*####++++*%*+#++%**++*+#+**++**%#*#%*##*+#*%*#+#*###*#**###*##*##**#**#*#*=*#*####%##%#*####*####@##**#@@@@%%%%%#%%#+%#%#@%%@#%%*%%
#*#+#%##++*+##*#*#**++++*+##+*#*+**+*#**+*#*#####*****#*#*##*****==+**#*=##*#%##*#*#*#**####++*###*##*###*###*###**+%#*#%@**##%@#%%%%@%#%#%%#*#**%%%#%%%#%%
%*#*#+*+*+**+*#####*+**#*#*+#**##+###*##+%##*##*+*+####**%+****#=+=*#*%#+**%#**#*##****##*#*=##*####*%#%**#**#**#*###*%%%#%%%%%%#*#%%##*%**%@@#@%%@@%#%#
%%#**%%*%+#*#***#+#*+#***#+*****+#*#+*#**##*@@#**#%+*****%*@##%%%###*#**#*#*##*#%+**#*###*##%##**###***%%%%%#%%@%@%@@@%###%%%##+%%%@@%%@@@@%%%
@%@%%%##%%**%#*###*+#**#+*+**##****#+#**#%**#**#*#*+*%@#*##*%#*#**#%@%%@#*#%***#*****#*##%=**#*##**##*####*#*##%%%%%@@@%%@@%@%*%%#%%@%%%@@%@%%%@@%%
%%%%%%%##%+*#######+#**+#****##*#****##**#*#*%%%*#*%%%%*%%@#***#%%%*%%%%@%%%##%#*#*#*#**#*##%*#*##*###*#**##**###****#*#%@@%%%%%@%@%@@%@*%%#%%@#%@%@%%@%%#@@%
##*#+*++#**#%#+%*#*#*+*#***+***#**#*****#*=%@@%%@%%@%@@@@@%*%%+#%%%%%@@%%%%%*##*%%%####%*#*#**##**#=***##*#*#*****%*#%%%%@@%%@%%%@%+@=%%%%*@%%%@%%%@%%
%**+***+*+**#+*#####*+*++#*++*##*#**#*#*##*#**#%%%@%%%%%@%@%%@#%%#%@@@%%%%#%%%%%@%#*%@%%%**#*######**#=+=##*###*####*#@@%%####%@@%#%%@@*=%%@%#%%@@@@%@%%%
#***#*+#**#**##***#****++++**##+*****++*****##***###*#####%#**@#**#%%@@@@@%@%@%@%%%%##*##***#*****#*=*-#*#*##***##*%%@%@%%#@@@#%#%@@@%*#*%%%*%@%@*%%%
####*#*+*+*#*###*####********#***#*************#*#*****#**###***%%%@@@%@@@@@@@@%@%%#%###**#####***##*##*##**+-#*##*#**@@@@####%@@%%%###@@@@*%%*#%%%*+%%@
*#####***##*##*#+=****++***#*#**#+************#**#**#***#*#****#%%%%#%#%%###%#*#****####*##************#+##*#*##**=*#%@%%*%%#@@@@@%*###%%%@@@@%%%%*++%%%@
#***#**********###**********#**#*****#*******#**#*#**#**#*##***#*%#***+****##**%#*##**#**##*#####*#*#**+=%**#####**++#@@%@@%%%%@@%@%#%@%%@%@@%%@@@@%@%@@%**
*##**#***#****#************************##****#*#****#***##*####****#*#***##**#*#####**#***######*#*=%#####*##*#=##%%@@%@##%%@@@@@%%@%@%@@@@@@%@%@%%%@%
#***#*******#*****##****#***####******#*#*#**#******#*#*#****###************#####*#*#*#***#****#***###+%%*#*##**%%**%%%%%%%%@@@%@%%@@@%%%@%%%@@@@@@@%%@
##*+#********#**#*#*******#*#***#************#****#**#*********#***#**#*#****#*#*#*##*#*#**#####*#*#**%@%%%@%@%%%%%%%%%%@%@%@%@%%%%%@%%@@%%@@%@%%@%@
*#***********####*#*##*#*#***#*********************#*##*#*#*******#*#*##**##***#*##**####*#*########***%%@@@@%@%@%%%%%%@%*%%%@%%%#%#%%%%%%%%%%%%@@@%@%@
*#**************####**#**##*#*#*#*##*#***#****########*****##*#*##*#####***#***##****#*##*###******###*#*#*##%%%%%%@%%###%%%%%##*#####***#***##%@%@%%%@%@%%%%
+++=+=++=+=++++=++=++=+=+=+++++=+=+=++=+++++=======+==+++=============+====+==+=+=+=+=**+*+*+++=+==========+=+=========+==========-=-====-=-=-=====+%
+==+++======+=====+===+======++=+====+==+==+=+====+=+=++++=+=+==+++=======+=+======+=+==+====+=++==+=+===++=====+==+===========-==-=-==-=--==-=--====+%
=+===+=+=+========+=++=+==+=++====+===+======+==============+=====+========+======+========+====+====+=+=============+========-=====--=-=---=----=-====%%
+=+==+=====+================+++++===+++==+=+++=+======+=====+===========================================-=============-====---==--=--=----====-==-=--=-=%
+=++=+==+=+=====++===+=======++========+=======+==+==++=====================+==+====+====+====+=======-=-==============-===-===-==-=-=-==----------====#%
+===+=++=======+==+=+==+=+=+=+=+=++==+=======+================================================================-=-======-=---=-=----==-=-=-==-=---*%%
=++=========+====+===+=======+==========+=====+=+=+===============================+====+===========-=--=====+===-=-===-=====--=-=--=-=----=-=-==*@#
===+=+=======+===+==========+=+++==========+=+====+===============================================-================-=--=-==---=-----==----=-=--=-+%
+=====++=+====+===+======+========++=+==+=+=====+=+=++===============-================-===+======+=========-===+======--=====-==--==-===-=-=-=---=-=-=--=##
==+==+=++=======+====++===+===+=+=+++====+==+==+=========================================+=========-========+========-=-====-=-=-=---==-=-=-==--==#%
+===+====+===+===+=+=======+++===+============++++=++=+==============+==========-===================-=====+=====-=-====-==----=--==--=-=-=--==-%
=+====+=======+===+====++=+====++=++=++=+==+====+===+++========================================+==-===========--====-==-==---=-==-----=--=---=--*#
==++==++++=======+=+=+++==++=+=========++===+=++========-========-=================+========-==-====-=============-=-=--=--===----==-==---=---=-=---#%#
++=====+=============+====+======++++++=+=+==+====+=++++=+=+====+==-====-============-========+==========-=====-=--==-=-==-==-=---==-=-=--===--=-=-==*#
=====+====+==+===-+=-=-==-+==+==+++==+====+=+===+=======+=+-==+=====-====-===============+-=============-==-=====-=-==-----==--=-=---==-=-==---##*
=============-+-===============++==+===+=+==+===++=+++========+=========+==============-===-=======-=-=-==-=========----=-=-=-=-===-=-=-=---=----=--=----=%%*
=====---========-=====-=-=========++==+==========+=+===========-=-====-=-====================-==========-=====--===-=-=--=-*----=--=----===-======-=%#
=-======-=-=-========+==-===-=======+===+==+===+====+=======-=====-============================-==-==-=====-=--==-=-=--=--==-----=---------=-=------+#*#
==+-=---=--+-=-=-=--==-===--=-=-===-=-======+=================-======================-==========-===-=-=====-===-==--=--=#--=-=------=--=-==-===-=##
+-==-=-==-===-====+==+=-=============--==========+=======+=+======================-========-=-=-===--====-=--==-=-=-=--==#+----=-=====-=--==--=------#*#
==+-=-=-=+========+===-==-=======+-=-===---+====+=======-==-=-===-============================-==-=-=-=---===-=----=-----+===-=-----=--=-=--**#
==-=+=-==-====+====+==+=+===+==========---=-==-===================================-=====-==-==-=====-=-=-=-==---=-==----=-==#%+---=-====--=-=---=----+%###
=+=+==-==-+==+==+==+==+=+=++=+==-+-======-====-==++=-===-==+=--=--=-========-=================--=-==-==-=-===-------===--=%##+-=--===----=-=--=-==---%*#
=+=-==========+==+==+==+=+==+====+=========+==+============-==-====================-==================-==-=-=--=-=-=---=-=---%##+---=-------==-==---=-**%*#
====-===+==+=+================+==+=+====++====+===+==+=-=====-===-=-=========-===========-==--=--==-=-=---=----==-=--=--%#**--=---------------=--*#*#
+=+-====+=+=+==+=+=====+===++======+===========+========-==-==-==--===+==================-=====-=-=----===-===--=-=-=--*%#*#----------=--------=-=%*##
==+=====+=+============+=+===+++=+=+====+=======+====-=+=====+===+====-=-=========-=======--=-------=--=----===--=--==*%##*==----------:-=----=--==**##@
++==+==+=++==+=+++++=++=++++===+=+=+===============-=====-======-=================---=-===-===--=------=-=-=---=-----=#**++==-----------:---=---+#*%%
+=+=+=+===+==++====+=++=+=+========+===========+==-=====-=-=======-+==+-=+==============-==-=---==--=---=-=-===---=-=-=-==--*++=++---=-------=----=-----##%#
=++========+===+=++=+==+==++====+=+=++=====+==+=========-===-=-==+-===+===================-=-==-=-=-=--=-=------==-=---=---=--*=*-=-------=-----=-----=-=-#*%
#+======+=+=+=+====++++==+====+=======+============-+=-====+==+=====+============---==---=--=-----=--=-=--=-=----=--=-*++=+=-:---:-=-==--=:-:--##%%
+=+=+=+=====+=+===+=+=++==+==+====#================-=-==========-=================-==-==--=-=--=-=-=-=-=-=-=-=-----=------#*=+++=-------=------:-----#%#
+=========++=+++++++====+==+==+=*======+=====-=======-+====-=======+-==-==-===------=-=-=-----=---=-----=--=------#==+++==-:--------=---==---%%
+=+===+==+====+======++=++==+=+=*=================-===-============-===========-----------=-----=-=-=-=-=-----------:-:-#++++++=----------:---------=--%#%#
=========+=+==+=+==+%*+====+==++==+=====+==-=+==-==-=+====--====-======+=======--=-----:-----=-=---=---=-----------------%+#*%%=---:------=--==-==----%%#%
+=+===++======++===+++===+====+++=======+============-==-===-=-====-=-=======----------------------------------------:--#+-#%*+=-----:--------=--====+#%##
===+==+=====+=+=+=+=+=#==+==+=+==*-===-=+===-==-============-====-=-=======-====---=-----=-=-------==----=-==-----:-----#+++--------=-==--=-**=-=-#%##
+=====+++====+=+==++=+==+=+=-=-*-==-=--==+-------=-=--=-==-==-=-=====-==-=-=-=--=-=-=-=--==-----=-----------=------------:----+++=++=-:-:-:----=-=-=-+--=*%%%%
==+==++=++++=+++==+++===+=======+*-===---*--------=====-=---===-====-===-===-==-=------=-=-=-=-----=--=--------=-------:#+*++---:-.:::-----=#+-===*%%#
========++==++==+++#*+=+++=+==+#-=-=--=-+=-------==-=-=-=======-===-=====-======-=---=-=--=-------------=-=-------------#+++**+=-:-:-:----:-:-:*===*#%%%#
+====+=+=+++++=***#%+*=##*#===+*=-===##-=--=---=--======-==--===-==-=--==+-=-=======----=----------=---=---=-=-----------#++++=-.::.:.:-:------%+*#%##*%#
+++==+==*+=++++#*#%#%=+*##**#**+**==-=+=-=+:=-----=-========-====+==-=-==-=-====-=--=-=-=-=-=-----------------------------#+*+**+--.---:---=###*#%#%#
#*#*+==+=+*+**+*#*#*%*+#*+*###*#%%+#====-==+--=-=-===============+=-=-=-=-=-==+=====---=----------=-----=-------------#+*+*+=-:-::.---:--+*#*%##*#%#*
***++++*##*+####*%@%#%%*%%%%%*+%**+++-==*---====-==-+========-===+=====+======---==--=-=--=-------------=-=--------#*+*+++=--::-.--=+%%*%%##*+=##%*
=#**#%#**%%%#%###########%%##%=*++#*=#*#++#-=-=-=========-=-=====+===+-====-+=======-=-====-=------=----=---------------%++*#*+=-::-::---=%*###%#*%*#%*
**+*#*###%####%%##*%###*###%##%#=#===+++-+#+*=-===+==+-=======-========-==========--=====--===--=-------:-----------------%++*+=----:--:-#*%######+%#%%+
+++#%*#%%##%%#*##%%###%#%#%%#-=-:*#==%==%+=*=+-=--=-===-=============+==-=-=====-+=--=-===--=------=-----------------=---%+***+*----------**#*%#*####%#%#
#+**+##%*%#%%#%##%#*#######%*#+#+==*==+-#==#===++=======-=-=======+====-==-=+=-=---===+===--=-==-=-----------=-----------%*++*+*=---------+**%#%####=##%+
*#*##*#%**+#%%##%*#%****###%###=*=:%=**-:+-==++%#*##*+**====-======-+========--=-=-===--=+-==------=--------=-----------%+*****=--------+#########%=##+
#*#+#*%#%++%###**+**%+####*##%@%##*+=##%++==-+*#**==%+++=+=+-++====+===+=++=--=-==-===-=--==-=--=------------=-=-------%**+*=---=------######*%#+##*+
***#***#++#%%+%==++*##*#*%%%##=+=+#+#=%-===++***##+#*+*++*+===++====+==-=-=----===-=-=--==-------=---=-=-----+====--------%++**+++--------=##*#%%%%*%%++*##%
*=*#**+##**##%#+=+-++#####%###=++++*++#==+*+#*++#+#***##*======+==--==+==-==---=-==--==--==-===-----+-----++++#++####**#+***+*+*+=+-=---*#%%#%##%++#%@
=+++#+##*+##%+=+=+=*#*#*#*#%#%#=++++*+++--++*###*%****#*+++-+=++==++=====+=-=-=-=+=+====-=--========*==+*+##++==*+****###***+**==*+*====*##*%@@#%*##+#%%#
-+===++=+++*%++*=+=+=*##*###***#%-*=+++==:#-==++***+=##*#***========+=+=++=============-======-=-==-*+**#+*#****#*#**##+******##**=*#%%*#%@%@%#%#=*%%%#
=====+-=*=+==++++++##++#*###*#####====++#*=+#===*+###:*+++%%%%%#+++++=++++=+=+=-+===+=-+++==+=++======+**%%#*+*#*#%#**##+##******#*%#%%%%%%%#%@@#%###+%%%%
==***#%#*+**#=#***===*##%***#-++=-=+=+*#+*+##**:==+###%%#*=+=+=====++=+=============+=+==+======##%%###=+#*#++=+++=+=*#*****++*%%%%#%##%#%%%%####+##%%#
##*###*##*#%+++=+++#*+*##*#*##+++==#*-*-=++*#*=*=+%#####=+#===++===+=++++==++==++===+++++=*++%##%%##=*+#%#==+=+===**#*#*+*++#%#%####%##@@%%##+%%%%%
#%%%%###%%%*##%*#*++*######*%###=*=-*#+*=##*-#+*+--+#+#%##*##+++#++=++=+==+=++=#=+=++=+=#++++=*+*==+-#%###%%%*=++%%%=++=++==*###*#**++*%%%#%#%#%#%%%%###+%@%%
%%**+%%%%%*+#+%%%%%%%%%%%*##%=#==+#*#*=+==***+==#+=#*#%*#*=++#++**+*=*++=+*+**+*++%*++++**%=+######@%##=+*###-+++=+=+*##********##%%%%#%###%%%####+%%%
%%%%**=%%#%-##+*%@%%%%%****####=*=*#**++%=+-##*=+*####*=*+***#*#==+##++**#*++*=**#*#***####+:=#######%##+**==#++--=*###******##%%%%#%###%%%%%###+%%%@%
%%%%%***#%#*=%#+#%#%@%%%%%##+*#%#=*+=+#++*=#===*#*+==**=*###+*#*#*####==++*#%%#++++***#**#+==--=-=###%%#%##*=++*##=*+-==*###*##***##@%%%%##%##%%#*%%%%#
#******%*%*+###%%%##+##%%+#***==+*+++#===#+#+*--++=#*####*++=+=++*+######%#+=+*#****+***#+++-===#%%%%#%##%=++*%#=+=*+%%#%%%#*%*###%@%@%%###*##%**##@%*@%
#*#+#**#*%+=##+%@####**#%%*#**#*%=*==##=++=*==#+#**:=*=#**#*++=+==++*+*###*####%##+*++=+#++===+###*##%%%#=++#%=+==*#*#%*##***##%%%@%*%#@%%###+%%@%%
*#*+#*+***%#%++=#%%##*%##%@#++%#%#+*=*#-#=+#===*+%+*-*%++*###*#+*=*+##*#*#=#%#####%##*+*==##+++####*###%%#%%%#=***%#=*%#%#%*+*#*##%@%@@@@%##%%%#%%##%=%@%%
*#**#**#***+++**%#%##*#***+##%#+++==+==++#+=**#+=+#+#####*++++*###*+*#%#%##*%#*+*+==*+*++%*###=#####@#**+*%#=+###*=+#+=*%#%%@%#%%@%##%#%#%###%+%%@%
#+*#*#*=*=#++=+*#%@%%%=**+#++#=*=+=+++==*+##+#+=%#****###++**###%%+**#%*####*%#+=+=%*%%##%%#%%#*+%##%%=++#%==#*++==++###%%%%%%%%%%#%##%%%*%%#+%%@@%
##****+++*+=+%%%%%%***=#+***%*#%%%%#+*+*+=*##=+++**###*+#*##+##%%%*##%%#*+**+*#%%*#*####+#*##%#=**#@%=**----====*#%#%#%###@%%#%%%#%%+%##%=%@@%
****#+*=+*++%%%%%##%*##=#*+#%%++=+=++*#=====#+#*=*++*#%*#+*##++%##%%##%%#%#%#*#*=*++==#%#####**##%###*#=*+#+#=+##=%==+*%%@%%#%%%#%%%%%#%%%%*%##%%@@%
##*##*++=*=*%%*#**=++=%##++=*%+=**+#**++=*%#%*-=+*+*#####**##*###%##########*=+==+*#%##*#####%#%*#%#*=**###=*%*+##-===*%@%%#%%%%%#@%###**########+#%@%
#*****+:-:---*%%###%+--=%#*--#%*#+=%##**##**+*#%##==+*=****#+#%##*#####%@####*######+@#*###%#%%########%%%#++#%#*+*#+#*===*#%%%#%##@*@%%%####@%##*#**%@%%
*#*##+----:=%%*#%%#*+=+##=%%+*+=##*##%+*#*%#=++*##*#***%####*#*##%###%%##%#%*==+%*++##%####**####*%%#+#*%*#*#%#++++++%@%%###%%#%#%%##%%%@%%@%%%%#%%%%
***#*=%=*++%%##+=:-====--=%%%%##%%%%%#**+#%#%=##=*#*#*#+#+=#####*#**#*#@*##%#%*=+%*%#*%#%*##%*%#*#@%%#+##%*#+###=#%###%%@%#%###%@#*+%%@@@@@@%%%%*%%#
*###**+*+*+*%%%%###%+=#++*#+=#%+*+=%#*+%%#+#+*#%##+%++#*#**#+=%#%%##%#######*#*####+*#++**+%#***###*#*#%####%##=+#%=*####%%%%#%%###%#+###%@%@%%%#%%%%*@%%#
=*#*#++*==##%@%%#@%++#+%*+*=#%+@*++#*+%=*+#%@##+*++=**+***#*%+%##**#%##%##*%%@%%@@%#%#*##%####*#####%##*#%##%#%=#@#=#*%###%@###%##%%##*###@@@@@%@%@###*
=+###***=++#%%%%#%#+++*@*+=*%%#+*++=#%+##**%#%+**=*#++###*#%#%%%##%%###*###%####+*#%#%##%###*#%#%%%%@%*#**#%#%#*++%#=%%%#*%%##%%*%######@%@@%@@@%@@#@%%
%##*#%##--=*+*%%%@@%#++=*@**%+=++=*++*+***+*##*#%#++==*%@%+%%*+%@%%##%%%##++**++#*++*##*#*###%#@@%%%@%%%%*++*#*#+==*++##+%%%+@@*%####%%%@%@%%@@*#%
=*###*+====+=*%%*%##%+=++##==++#%++++####%%%##*+*#@+**#**%#%#*##**#%##*%%+%%*##++#**####%%############**#*%#*#+*+%%+*%%%**#=*+==++++######@%#@%@%%@%%#%
=###++*++=#%##%+#**#+*%+++++*#-===+%+=#+%#%%*=*%+*%#*#+++#*##*+*%####*##%#####%%#*++#*#+#**###**#####%#*#@**@@%#*+%##*%#%%%%+%@%%====+%%%#***+#@#+*%%*%%*%
=+*#*#*++++=====%%====++#++==+%*++*+++*#%%*%#%#%%#*#++##*+*##**##%#%####*%%@*##+***+*##**######*##%%%%#%%%%%%*%%%#@%%%%*%%%@@#%#%%%###**+%@%+*###%%%#
#+%#%#*=++===+#++*#*+*%*=#*+#++*#%*+*++##*+*#@%#*#%%%+#+###+*#*#+######*###*#%%@%%****##*####*#*#%#*+#%%%+*#+=#*%+*#*#%*%@#%%%@@@#%+*+%##@%%%%**###%###
##%%#*##*+**%+*#++*+++#++++#++*++**+##%%**++##%*#++#####+*+#**##*#%#**##**%%###*#**##*##*##*#*#***%%%%%@%##**###%#*####%%@%@%%%%*%#*%%@#######%%*
#+%%#++++++***+=++++#*+*@++*++++*##%*+*%##*+*#%*%#**+**#%#*#*####%##%####+*#+#######*#*#*#***#%###*#+*##*#######%##%%@%@%%##%%*##%@@%%#%+##*##%#
%**=**+++++=+###*#*#*++++#++***%#++++++++###*#+*#*##+%%*+#####**+#**#*######***###****%###*+###**#####****#**##*#%*#***#%%%%@%%%%#%%**%#%%@%*%%*##*###
%##=#*#*++=++*#*####++++*%*+#++#%*#*++*+#+**++*#*%*#%*#*+#**%*#*+#*###*###*###*##*##**#*##*##**=*#*######%#%#*%###*#####@##*#@@@@@%%%%%#%%#+%#%#%%%@%#%%*%
#*#+#%#+#+++*+##*#*#**+++++##+*#*+**++#***+*#*#####**#***####****==+**#*=##**%##**#*#*#**###++*###*##*###*##*###**+#*#%@**##%@#%%%%@%#%#%%%#*#*%%%@%@%#%%#%%
%%*#*#+*+*+*+*####*+*+*#*#*+#**#+###**##+%##*###*+*+###*%****#+=*#*%#+**%%#**#*##*****##*#*=##*#####*%###%**##**#**#%*###*%%%%%%%%%#%%%##%**%@@#@%@@%#%#
%%%*#**%%%*%+##*##***##++#*+#**#+*******+*#*#+**#**####***@#@#*+%+****%*@##%%##*#*##*#*#*#%**#*##*##%##*###****%%%%%%%%@%%@@@%##%%%##%%%%@@#%%@@@@%%%
@%@%##%%%%**%#**###**#**#+*+**##***+#**##%**#**#*#**+*#%@#*##*%#*#+**%@%%@#*#%#***#*****#*#%=*#*##**###*#*#####*####%%%%%@@%%@@%@%@#*%*%#%@%%%@%@%@%%%@@%%
%%%%##+*#####+#**+#*+***##*#****##**#*#*%%%*%*%%%%*%%@#***##%%%*%%%%@%%%#%#*#*#*#*#*##%*#*##*###*#**##**###****#*#%@@%%%%%@%@%@@%@@*%%#%@#@%@%%@%%#@@%%
##*###+*++#*#%#+%*#*#*+*#**+*+***#**#******#*=*%@@%%@%%@%@@@@%*%%+%%%%%%@@%%%%%%*##*%%%###%*#*#***##***##==***##*#*#**#***%*#%%%@@%%@%%%@%+@=%%%%*@@%%@%%@%%
%**+***+*+*#+*#####*+*++#*+++*##*#*****#**#*##**#%%%@%%%%%%@%%%@%#%%#%@@@%%%#%%%%%@@%#%@%%%**#*######*#=+=##*###*####*#@@%###%@@%##%%@@@*=%%@%##%%@@@@+@%%
##***##**#**##***#****++++**##+*****++***#**#*###*#####%#**%@@#***%%@@@@@@@%%@%@%@%%%%##*##***#****#*=*-#*####***##*%@@%#@@@@%#%#%@@%*#*%%%*%@%@%@+%%%
#####*+#*+**###*####********#***#**************#*##*****#**##*%%%@@@%@@@@@@@@@%%%###**#####***##**##*+-#**###*##***@@@@@####%@@%%###%@@@@@%*%%*#%%%%%*+%%@
*#####*****##**#*#+=****++***##*#**#+***********#**#*#**#*+**#*#***#%%%%%%#%###%#*#**####*##************#+##*#*##**+=*#%@%%@*%%#@@@@@%*###@%%@@@@%%%%**#++%%%@
#**#**********###***********#*#***#*****#*#*#**##**#*##***#*%#***+****##**%#*##**#***##*#####*#**#**#+=%***####**++#@@%@@%%%@@%@%#%@%%@%@@%@@@@@%@@%***
*##**#*********#**#*********************#*#***#*#******#***##*#**###*****##**#***##**#*#####**#***###*###**=####*##*#=##%%@@@##%%@@@%%@@%@@@@@@@%@%%%%%@%
#***#******#******##****#*###********#*#***#**#****#*#*#****###**********######*#*#*#*#*****#**##+%%*#*##**%%**%%*%%%@@%@%@@@%@%%@%%@%@@@@@@@@@%%@
*##*#*******#*#*#*#*******#*#**#************#*#****#**#********#***#**##*#****#**#*#*#*##**#**#####*#*#**%@%@%@%@%%%%%%%%%%%@%@%@@%@%%%%%%%@%@@%%@%@%%@%@
***********#####*#*##*#*#***#**#**********************#*###*##********#*###*****#*##**##*#########***%%@@@@@%@%%%%%%@%*%%%@%%%#%#%%%%%%%%%%%%%@@@%%@@%@@
*#**************###*#*##*#*#*#*#*#*******#####*##****##*##*######**#***##****#*##*####*******##*#*##*##%%%%@@%##%%%%%##*#####***#***##%@%@%%%@%%%%%%
++=+=+=+=++++=+++=++=+=+=+++++++=+=++=+++++++========+=+=+++============+=====+==+=+=+=+=*+*+*+++=+===========+==+========+==============-=-=====-=-=======+%
+==+++=+=+====+========+=+==+==++=+===+==+==+=+=====+=++=++=+=+==+++======+=+====+===+=+=+====+=++==+=+===++====+=+=+==========-==-=-==--=--=-=--=--===+%
+==+++==+======++==+==+++========+=======================+========+======+============+=====+=+===========+======-=====-=-=-=-=--=--=-====%%
+=+=+===+===+================+==++++===+++=+=+=++=+=====+=====+===============+==========================-=============-=====---=-=------====-===--=-=%@
+=+=+=+===+==+====+======+=======+=+=======+=======+=+==++=====================+==+====+====+====+======-=============-===-=-=-==-=-=-===-------=====#%
+========+=++===========+=+==+==+=+=+==+++==+========+================================================================-=-=====-=---=-=----==-=-=-==-=-=-*%
++==========+======+=+=====+==========+==+==+==+=+==+============================+=====+==============-=--=====+====-=-====-==-==---=-=--=--=----=-=-==*@#
+==+=======+==++=====+=====+=+++==========+=++====+====+=================================================-==============-=--=-==---=--=---==-----=--==-+%#
======+=+=+==========+==+========+=+==+=+=====++==++===============-================-===+======+==========-===+======--=====-==--==-==-=-==-=----=-=-=-=##
==+==+=++=====+==+==+===+==+=+=+++===+=+=+==+=========+==========-============+======================-======+======-=-=-=====---=-=--=---==-=-=-==--==%
+===+====+======+=+=======+++=+===========+===+++=+=++=+==========-=================-=-===================-=======+====-==-====-=-=-=--=--==--=-=-=---==-#%
=++===+===========+===++=+===++=++=++=++==+==+===+=++===========-=============================+=============-=-====-==-=---=-==-------=-=---=--*#
=+=++====++=+++=======+=+=+++=+=++=+==========+=+===+=+=========-========-============--=====+=======-==-===-=============-=-=----==---==-==---=---=-=---##
++=====+==========+====+====+==+++=+=+==+==+====+=++++=+=+====+==-===-==========-================-======--==-=-=-=-==----===--=--===--=-=--===**#
=====+===+==+====-+=-==-=-+=======+=++==+====+==+===+=======+=+-=======-====-=================-+-==============-=====-===------==-=-=---==-=-=--==--##*
===========-+-=======+==-======++==+===+==+===++==+++========+==========+============-===-=======-=-=-==-==========----=-=-=-=-=====-=-=---=---==--=----%%*
+====---=============-=+-========++==+=========+=+=======+===-=-=====-=-========================-===========-=====--==-=-=--=-*----=---=---====-========-=%##
=-=-=====-=-=-=========+==-===-=======+===++=+===+============-=====+=======================-==-==-=====-=--==--=-=-=-=--*==---=-------=-=-=------+#*#
=+-=----==-=-==-=-==-====-=--=-===-==-=======+===================-=========================-==========-====-=-=======-==----=*#-=-=------=--=-==-===-=##
+=-=-=-========+==+===-============--===========+=========+=+=======================-=======-=-==-==-=--====---==-=-=----==#+----=-=====-=--==-=----##*
==+-=--=+==========+===-==-=======-=-====--=+=====+=======-===-====-=============================-==-=---====-=----------#+====-=----=--=--=---==--**#%
==-=+=-==-=+==+==+=+====+==========---=-==-======================================-====-==-=======-=-=-=-==----=-=-=----=-==#%+---=-=-===--=-=---=----+%##
=+=+==--==-==+===+==+==+=+=++=+==-+-===-==-===-==++==--==+=--=-=-=========-=================--=-==-==-=-===------=-=---=%##+-=--==---=-=---=-==---%*#
=+=-========+===+==+==+=+==+====+=======+==+==============-==-====================-====================-=-=--=-=--=-=-=---=-=---%##-=-------==--=---=-**%*#
====-=-===+==+===+==============+=+=+====++====+===+==+=-=====-===-=-==========-=======-====-==--=--=-=-=-----=-----==-=--=--%#**--=-----------------=--+*###
+=+-===+=+=+=+=+=+====+==++======+===========+=======-====-==--=====+==================-========-=---==--===-==-=--*%#*#----------=--------=-=%#*##
========+==+=============+===+++=+=++====++==========+=====+=======+=====--=========-=======-----------=-==---==--=--==*#*==----------:-=----=--=**##@
+=++===+=+=++=+=+==+++=++=+=++=+===+=+===============-===-==-=======-==================---=-==-===--=----=-=-=---=-----#***++-==-----------:=---=---+*%%
+=+=+=+===+==+=+====+==++=+=+====+====+===========+==-====-=-=====-+==+=-=+============-==-=--==-=---=-=-=-=---=-==-=-=--*++=++---=------:=---=------##
=++=========+==+=++===+==++===+=+=+=++====+==+=========-======-==+-===+==================-=-==-=-=-=-=-=------==-=---=----=-=-*=*-=------=--=---=-----=-=-#*%%
#+=+======++=+=+=+====+=++==+==+===+========+============+-====+==+=====+============--===----=------=--=-=--=------=---=-*++=+=-:-----:-=--==-=-=:-:-##%%
+==+=+=====+=+====+=++==+==+====#=+=============-=-==========-==================-==--=--=-=--=--=-=-=--=-==----=------*=+++=---------=-------:-----#%%#
+=========++=++++++=+====+==+=+=+*=======+======-======-+====--========-==-==-==-------=-=--=-=---=--------=--=-------=+++=-:--------=---==---*%%%
+=++===+=+==========+=++==+=+=*==================-====-=========-==========------------=------=-=-=-=-=-----------:--#+++++=----------:---------=--%##
===========+=+==+=+==+%*=====+=+==+======+=-=+=====+===-=-=-====-======+======--=--=---:-----=-=---=--=----------------%+#*%=---:-----=--==-=----%#%
++==++====+===+=+===++===++=====++=======+==============-=-==-=-===-======-=------------------------------------------:---#+-#%*+=-----:------=--=====+#%##
=+==+====+=+=+==+=+==#==+==+=+==*-===-=+==+=-==-=====+=====-=-===-=-=======-====---=------=--=--------=-=----=-==------:-----+-++++---------=-==--=-**-=-*#%##
+====+++=+===+=+=+=+++=+=+=-=-+*-==-=--==+-------=-=--=-==-==-=====-==--==--==-=-=--==-----=-----------=-----------:---*+++=++=-:-:-:----=-=-=-++-=-=*%%%
=++==++=++++=+=++=+++===+=====+*-====-=------------=====-=--=====-===-===-===-=-=-----=-=--=------=--=----------=--------:#+++*++=---:-.:::-:----=#+===*%%#
=====+==+=+=++==+++#++**++=+==+#-=-=-=-=-------==-=-=======-====-===========-=--=-=--=-------------=----------------#+++**+=-:-:-:-----:-::*===+#%%%#
+=====+=+=++=++=***#%=*=##*#*===+*=-=#-=+--=---=--======---==--==-=-==-=--==+-=-=====--=-=-----------=-==---=-=---------#++++++=-.::.:.:-:-----%+*#%##*%#
#+++==+==*+=+++#*##%=+*##**#**+*==-=-+=-=+:-=-----=-=======-====+==-=-==-=-====-==---=-=-=-=-=-=-----------------------------#*+**+=----.---:-:---=#%##%%#%#
*#*+==+=+****#*#*%*#*+###*#%%+##=====-==+--=-=--======-==-=-===+=-=-=-=-=-=-=+-====-===---=-----------=------=------------#+*+*+=--:-::.--:--+*#*#*%#*#%*
****++++##*+####*%@%#%%%*%%%%*+%***++-==*--===-==-+=======-=====+=======+=======---==-==-=--=-----------------=-=-------*+*+++=--::-.----=+%%*%%##*+=##%*
=**#%#**%%%%%#%#############%%##%=*++#*=#*#+#-=-=-===========-=-========+-===+=-+=+======-=====--=------------=-----------%++*#*+=-::::---=%*####%##*%*#%#*
**+*####%###%%##%%###*###%##%#=#=+++-+#+*=-===+==+-=======-========-============-=--====--==--=-------:----------------++++=------:-#*%%######+%#%%+
+++*#%*#%%###%%###%%####%#%#*%%#-=-:*#==%==%+=*=+=-=-==-===-=-===========+==-=-===-=-==-+=--=-===--=----=--=-------------=---+***+*----------*#*%##*####*=%#%#
#+**+##%*%*#%%#%##%########%###+#+=*=+-#======+=+======-=-=======+===-==-=+=---==+===--=-===-----------=-----------%*++*=--------+**#%#*####+=##%+
*#*##*#%**+#%%##**#%*****###%####=*=:%=**-:+-==++%#*##*+**====-=======-+=======---=-=-===--=+--=------=--------=--------------%+****=------+####*#####%+=*#+
#*#+#*%#%++%###**+**%+####*##%##-*+=+##++==-=*#*==%++=+=+-+====+====+=+=+=--=--==-==--=--=-=--=-------------=--=------%+#***--=------######*#%#++#*
**#***+++#%%#+=%=++*#*#*%%%#*+=+#++=%-===++***##+#*+*++*+====++====+==-=-=----====-=-=-==-------=---=-=-----+====---------%++**+++-------=##*#%%%%*%%++*#%
*=*#*+##**###+=+-+=+######%###=++++*++=#==+*#*+###**##*===+===+==--==+=+=-==----=--==--=====---=--+---=-+++#++#####**+***+*+*+=+-=--##%@###%++#*%@
=++++##*+##%+=+=+=*#*##*#%%#%#=++++*+++-*--*++*###**+***#*++-+++=++==++=====+-=-=-==+=+===-=--========*==+*+##+==*+****###****+**=*====*#*@@#%*##+##%%#
-+===++=+++*%+*=++#*##*###**#%-*==+++==:#=++**+++=##*#***=========+=+++===============+=-======-=-==-*+****#+*#****#*##+******##*+*=**#%@@%#%#=*%%%
=====-==+==+++++##++*###*####====++#*=+#===*+###:*+++%%%%%#++=+++=++++=++=+=-+=+=+=-++==++=++=====+**%%#*+*#*#%#*####+###*******#*%#%%%%%%%##%@@#%###+*%%%%
==**#%#*+**#=#***==++*##%***#++=-=+=+*#+*#+#**:+=+###%%#*=+=+*=====+=+===+=====+===+=+=+=======###%%###=+##*#=++=+++=+=*#****+*++*%%%%####*%%%%####+##%%#
*##*##**##*#%++=+++#*+*####*#=++==*+-*-++#*-=*=+%#####=+=#==++==+=+=+=++===+==++===+++==*++%###%%##=*%#==+==+===**#*#*+*+%#@%####%##@@%###+%%%%
#%%%%##%%%*##**++*#####*%%###*=-+#+*=##*-#+*+--+#+#%#*##+++#++=+===+=++=#===+=+++++=+*==+-#%###%%%*=++%%=+=+==*###**#*++*%%#%#%#%*#%%%%####+%%@%%
%%%%**%%%%%%+#+%%%%%%%%%*##%=#==+#+*#+*=+==**+==#+=#*#%*#*=++++++*+*=*++=++**+*++%*+++++*%==+*######@%##=+*##-+++=+=+*##*******#%#%%%#%#%##%%%####+%%%%%
%%%%**=%%#-##+*%%%%%%%***####=*==*#**+=+-+##*==+*####*#*=*+***#*#==+##++**#*+*=**##***###+:=####%#%#+*+**==++--=*###*****##%%%%%#%###%%%%####%%%@%
%%%%***#%#*=%+#%#@%%%%*#+*#%#=*+=+#++*=#===*+*+==*=*####*+*#*#*####==++*#%%#+*++++***#**#+==--=-=#%%%#%##*=++*##=-*+-==*###*##**###@%%%%%##%%##%%##*%%%%%#
%#******%%*+#=%%%##+#%%+#**###=*==+*++++#==++*--++=#*####*++=+=++*++#####%#+=+*#***+**#+++-==-=%%%%#%##%=++#=*+%%#%%%#**%####%@%%@%%###*#%##%**##*@%*@%
#*#+#***#*%+=#+%@####**#%%*#**#*%=*=#++===#**:=*=+#**#**#++=+==+*+*=##*####%##+*++=+#+=-=+###*####%%%#=++%*=+==###**#%*##***##%%%@%*%##**@%%##+%%@%%
*#*+#*+**%#%++=#%%##*%#%@#++%#%#+*==*-#=+#===*%+*-*%+*###*#*+*=*+##*#*=#=#%####%##*=+*==###++=###*###%%#%%%#=***%#+*%%#%#%*+*#*##@@@%@@%##%#%%%#%%##%=%%@%%
#*#**#*****+++**#%#**#***+##%##++==+=++#+**##+==#+#+####*++++*####*+**#%#*##*%#+*+==**++#*##%#%=#####@%#*+*%#=##*#=+#=*#%%@%#%@@%#%%#%#%#%##%+%%%%
#+#*#=*=#++=+*#%@%%#%#=**+#+++#=*=+=+++===+=##+#=%#****#*##++**###%%+**%%*####*%#+=#+++=+%*%%##%%#%%#+%##%%%=++#%#=#*+++====+###%%%%%%%@%#%%##%%%*%#%#%%@%
###****+++*+=+%%%%%%#***=#+**#*%%**#%%%#*+*++=+*##=+++**###*=+#*+###%++#%%%*##%#*+**++#%#%%*#*#####+#*##%#=*#@%==*----===*#%#%%%##@%%#%%#%%%+%##%=%%@@%
**#**+*=+*++%%%#%*##=#*++##%++=+=++*#=====#+#*-=*+**#%*#+*##++%%##%%##%%#%#%#*##*=*+=####*#*#*###%###*#*+#+#=+##=%#====+*%%%@%%#%%%%#%%%###%%%*%##%@@%
##*#*#+=*=*%%*#*#*+=++=%##+=%*#+=***+#**++=*%#%*-+*+**######****##*###%##########*=++==+*#%##*#####%#%*#%#*=**##=*%*+##-==*#%@%%%%#@%%###**######+#%@%%
#****+:-:---*%%###%%+--=+#*=--#%*#+=##**##***#%##==+*=*****##%#####%@####*#######@#*###%#%%#######%%%#++#%%#+*#+#*===*#%%%%%#%#%#@*%*%%###@%###*#%@%%
*#*##+---:%#%*#%%#*+==+##+=:=%%+*+=%#*##%*=#*%#=++#*#*#***%###*#*#%###%%%##%*==+%+###%####**#*##*%%#+#*%*#*#%#++++++%@%%#%##%%%#%%%##%%%@%%@%%%%#%%%%
#***#*=%=*++%@%%%##%+=:-====--=%%#%##%%%#**+*#%#%=##+=*#*#*#+#+=####*#**#*##*##%#%*=++%#+*%##%#*##*%#*#@%%+##%*####=@#%####%%@%%####%@#+%%#@@@@@@%%%%*%%@#
*###**#+**+*%%%###%+=#+**+=%*+=#*+%%#+#+*%##+*+++#*#**#+=%#%##%#######**####+=*#++*#*+%#***####*#%#######=+#%=@*###%%%#%%###%%+###%@%@%%#%%%%*@%%
=**#*#++*==##%@%%@%+#++%#**=#+@*++#%*+%=*##%@##+*++=**+***#*%+%##**#%#%##*%%%%@@#%%#*##%####*######*#%##%#%=##=*%#####%%##%%##*####@@@@%@%%@##%#*
=+####***=+#%%%%#%#++#+@+*++=*%*%#+*++=#%+##**%%#%+**=*#++###*###%%%##%%#*##*##%####+*#%#%###%##*#%#%%%@%*#**#%#%#*+%#=%%%##*%#%###%%%%*%####@%@@%@@@@#@%%%
%##%#--=*+*%%%@%#++**@*%*++%=++=*+++*+*+*##*#%#+++==*%*%+%%*+%@%@%#%+%%%##%++**++#*++*##*#*##%##@%%%@%%%%%%*++++*#*#+==*++##++%%%+@@*%####%%%%@%@%%@@*%%#%
=*###*+===+%%*%##%+=++#%#==++%++++*####%%%#*+*#@+**+#***#%#%#*#%##**###**%%%+%%*###++#**+#####%%###########**#*%%#*+*+%%+%%%#*#=*=+==++++#####@%#@%@%%@%%%#%%
==####*++*+++=#%##%+#**#+*%+++++*#-===+%+=#+%#%%*=*%+*%#*#+++#*##*+*%#####*#%%#####%%#*++##**#+#*###**#####%#*#@*+**@@%#*+###%%%%++@%%====+%%%#***+#@#+*%%*%%*%
=+*##*+=+++==%%=====++#++=+%*++*+++*#%%*#%#%#%%%%#*#+++##**##*#*#%#%#####*%%@*##+***+##**##########*##%#%*%%#%%%%%*%#@%%%%**%%%@@#%#%#%%###**%@%+*###%#
#+%#%#*=++===+#++*#*+*%*=#*+#+*#%**++#*+*#@%#*#%%+#+###*#*+*##+#####**####*#%%@%%***##*#####*#**###*%+#%%%#+*#+=#*%+*##*#%*%#@#%%%@@#%#++%##@%#%%%**###%#
*##%%#**#**#%+*#+*+++#+++++#%+*+*+##%**++##%*#+###*###+**+#*##*%#***##**%%###*#***##*#####**#***%%%%%@%%#%#**#*##%#*###%%%@%@%%%%**#%#*%#@########%%*
#+#%%#++++***#+=++++=#*+=@#+*++++*##%**+*%##**#*%#*#*+**##%*#*#####%####+*#+###%###**#*##*#**#%####*#+*##*#####%##%%@%@%#%*%*##%@#%%#+##*###
%**=*%*+++++=+##*#*#*++#+***%#++++++++###*+*#*#+%+%*+#####**+#***#####**#*####*%*****#%###*+#*##***#####**#*#**##*#%*#***#%%%%@%%%%%%**#%#%%%@%*%%*##*###
%##=##*+++#*###++++**+#++#%**++*+#+*++*#*%#*#%*##*+#**%*#*+#*###*###*#*###*##*#**#**##*##**=*######%#%#*%####*#####@**#@@@@@@%%%%%#%%#+%#%*#@%%%@%##%%%
*##%#+#+++*+##*#*#*++++*+##+*#*+**+#*#*+*#*####**#***#*#*##****==+**#*=##*#*%##**##*#**#####++*##*#*###*###*##**+%#*#%@*##%@%%%%@%#%#%%#*#**%%%@%@%#%%%#%%
%*#**#*+*+***####*+*+*#*+#+#**##+###**#+%##*###*+*+###**%+****=+=*#*%#+*%%#**###*****#**=#*#####*%###%****#**#%*###**%%%#%%%%%#*%#%%#*%**%@@#@%%@@%##
%%%*#*+%%%*%+##*##**#++#*+#***#+*******#*#*#**####***#@#@#*+#%*****%*@##%%%###**#*#*#**#%+**#*##*###%#**##***%%%%%%#%%%@%@%@@@###%%%##%%%%@@#%@@@@%%%
@%@%%%##%%%*%#**##*+**+#**#+*+**##***#+#*##%****#*#**+*#%@#*#*%#*#+**#%@%%@#*#%#***#*****#*##%=**#*##***##*#*####*#*####%%%%%@@%%@@%@%@#*%*%#%%@%%%%@%@%%@@%
%%%%%%%%##%+*########**+#****###****##**#*#*%%%*%#**%%%%*%%@#***##%%%*%%%%@%%##%%#*#**#*#*##%*#*##*##*#***##**###***##%@%%%@%@%@@%@*%%#%%@%@@%%@%#@%
###*###+*++#**##+%*#*#*+**+***#*#*******#*=*%@@%%@%%%@@@@*%%+#%%%%%@%%%%%%%*##*%%####%*#*#***##**##==****##*#*#*#***%*#%%%@%%@%%%@%+@=%%%%*@@%%%@@%%@%%
%**+***+*+**#+*####+++#+++*##*******#*###**%%%%%%%%%@%%@#%%%@@@%%@%#%%%%@@*%@%%%**#*######*#=+=##*###*####*#@@%%###%@@%##%%@@*=%%@%##%%@@@+@%%%
##***#***#**##****#****+++*###+**+***+***#**#***###*#####%*%@@#***#%%@@@@@@@%%@%@%@@%%%%##*#***#*****#=*-#*##*##**##*%%@%@%%%#@@@@%#%%@@@%*#*%%%*%@%@%@+*%%
####**+#*####*###*********#***#**************#*##****#**###**%%%@@@%@@@@@@@@%@%####**####**##*#*##**+=-+#*###*##***@@@@####%@%%%###%@@@@@%*%%*#%%%%*+%%@
*#####*****####*#+=***++**##*#**#+***********#**#*#***#*+*#*#****#%%%%#%#%%###%#*#****###*##**********#+#####**+=*#%@%%@*%%@@@@%*###@%%%@@@@%%%*#++%%%@
#****#*********###*#********#**#*****#*********#***##**#*##***#*%#*+*****##**%#*#**#***##*#####*#*#**#+=%***####**++#@%@@%%%%@%@%#%@%%@%@@%@@@@@%@%@@%*
*##**#*****#***#**#********************#***#*#******#*##*#**###****##**#****#*#*#####*****###*###*#*=%#####*##*#=##%%@@%#%%@@@@@%%@%@%@@@@@@@%%%@%%%%%@
#**#*******#*******##****#**####********#*#***#**#****#*#***##**********####*#*#*#*#***#***#***###+%*#*##**%%*%%%*%%%%%@@@%%@@@%@%%@%%@%@@@@@@@@@%%@
*##*+*#********#*#*#*#********#***#**********#*#****#**#********#***#**##*#***#**#**#*##*##*#**####*#*#**%@%@%%@%@%%%%%%%%%%@%%@@%@%@%%%%%%%@@%%@%@%@%%@%
*#**********########*#***#*#**********************###*#*#*********#**###**##***#*##**###**#########**%%@@@%@%@%%%%%%@*%%%@%%%#%#%%%%%%%%%%%%%@@@%@@%@@
*#**************###**#**##*#*##*#*#****##****#####*#*****##*#*##*######******##***#*##*####*******##*#*##*##%%%@%@%%###%%%%%##*####**##***###%@%@%%%@%@%%%%