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