#########$$$$$######@#@@@@@@@@@@@@@@@@@@@@@##@@@################################
########$&$$$$######@@@@@@@@@@@@@@@@@@@@@@@#####################################
########$&&&$$$#$##@@@@@@@@@@@@@@@@@@@@#########################################
######$$&&&&$$$$###@@@@@@@@@@@@@@@@########@#@@#################################
#####$&&&$$$$######@@@@@@@@@@@@@########$#@@#@@@##$$$###########################
####$$&&&$#$$$###@#@@@@@@@@@@@@@####$$$&&$##@@@@##$$$$##########################
####$$$$$$##$$#####@@@@@@@@@@@######&%$%%%%&$##@@@@#$$#####$#$$$################
####$$$$$$##$#####@@@@@@@@@@@#####$%%$$$$$$&$$#@@@@@###@##$$$$$$$$##############
@@#####$$$$#$####@@@@@@@@@@@####$&%&%%==?=&&%&##@@@@@@#@@#$$$$$$$$$#############
#######$#$$$#####@@@@@@@@@@@####&%%?!::::!+%&&##@@@@@@@@@#$$$$$$$$$$$###########
########$$$$#####@@@@@@@@@@####$$&%:~,,~-:!?%$$#@@@@@@@@@#$$$$$$$$$$$$$#########
@######$$$$#######@@@@@@@@#####$$&?-~,,~-:!+%$$$##@@@@@@#$$$$$$$$$$$$$$$$#######
@######$$$$########@@@@@@@#####&%$!-~,,~-:!+=$$&$##@@@@@$$$$$$$$$$$$$$$$$$$$$$##
#@@@@###$$$########@@@@@@#####$%&&!:-~~-:!+?%&$&%$#@@@@@#$$$$$$$$$$$$$$$$$$$$$$#
#@@@@@##$$$#######@@@@@@@#####&%$$=%%!:*&$$&$#$$%&##@@@@#$$$$$$$$$$$$$$$$$$$$$$#
@@@@@###$#########@@@@@@#####$&&$&??&?:?#&?&##$&=&#@@@@@#$$&$$$$$$$$$$$$$$$$$$##
@@@@@###$#########@@@@@@#####$&%$%???!-=%*+&$&&&%$#@@@@@$$&&$$$$$$$$$$$$$$$$$$$#
@@@@@###$########@@@@@@@#####$%&$?;!::;==!!**+%$&$#@@@@#$&&&&&&$$$$$$$$$$$$$$$$$
@@@@@##$$$######@@@@@@@######$%&$?---:!%%!;;!=$$$$##@@#$$&&&&&&&$$$$$$$$$$$$$$$$
@@@@@##$$$#####@@@@@@@@######$&&$%:-:?%$$!;!?&$$$&$#@#$&&&&&&&&&&&$$$$$$$$$$$$$$
@@@@@@#&$$####@@@@@@@@@######$$$$$;-~;?&&*!+%$$$#$$#@#$&&&&&&&&&&&$$$$$$$$$$$$$$
@@@@@@$$##@@@@@@@@@@@@@#######$$$$+-:+?=?++%$#$$#@###$&&&&&&&&&&&&&$$$$$$$$$$$$$
@@@@@#&$#@@@@@@@@@@@@@@#########$$%!+++=&%&$$$$$@@##$$&&&&&&&&&&&&&&$$$$$$$$$$$$
@@@@@@#&@@@@@@@@@@@@@@@#########$$#=*?%&$&$$$&&#@@#$$$&&&&&&&&&&&&&&$$$$$$$$$$$$
@@@@@@#$@@@@@@@@@@@#@@@#########$$##?;:!=$$&&&$####$$&&&&&&&&&&&&&&&$$$$$$$$$$$$
@@@@@@$$@@@@@@@@@@@#@@@#########$$$#$==%&&&&$#####$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$
@@@@@@$$@@@@@@@@@@$%#@@##########$###$==$#########$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$
@@@@@#=%&&&$$####%?%=#@##############$%!=$#########&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
@@@@@#&##$$$$&&&&%++&$&&#############$&!!?&#######@$&&&&&&&&&&&&&&&&&&&&$$$$$$$$
@@@@@@@@@@@@@@@@&+?$@@#$############$$$%+?=&$########&%&&&&&&&&&&&&&&&&&$$$$$$$$
@@@@@@@@@@@@@@@#%&$#@##$############$$$***+?=&$###$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$
@@@@@@@@@@@@@@@$%+*+=&$$############$$=!;;;;*???=??++?=%&&&&&&&&&&&&&&&$$$$$$$$$
@@@@@@@@@@@@@@@&!!**?+?%##########$$$=!;;;;;!!;;;;;;;;!*=%&&&&&&&&&&&&&$$$$$$$$$
@@@@@@@@@@@@@@#*;*+??=&$########$$$&?*;::----::;;;;;:::;!+=&&%&&&&&&&&&$$$$$$$$$
@@@@@@@@@@@@@@&;?$$#$###$@####&%??+**;-----~---::;;::-:::;!*+?%%&&&&&&&$$$$$$$$$
@@@@@@@@@@@@@@=!%$######$####%+!;;;**;--~~~~~---::::------::;!+%%&&&&&&$$$$$$$$$
@@@@@@@@@@@@@@#?=%$#####$###%;::::!??!-~~~~~~---------~~----:!?=&&&&&&$$$$$$$$$$
@@@@@@@@@@@@@@@$+?=&$$$$$##=;-:::!=%+;-~~~~~~~--------~~---:!!?%##$&&$$$$$$$$$$#
@@@@@@@@@@@@@@@@%?=%%&&$##%*:-!;*=%?;--~~~~~-------------~::;;?%$@#$$$$$$$$$$$$#
@@@@@@@@@@@@@@@@#%&&&$$##$+*::+*=&=!:-~~~-----:::::::---~::::;=%&@@$$$$$$$$$$$$#
@@@@@@@@@@@@@@@@@$%&$$$##?*!:;+%%?!;::---::::::::;;;;:--::::;+?%$#@#$$$$$$$$$$$#
@@@@@@@@@@@@@@@@@&+%#$$#&**!;*%&+;::;;-:::----::;;!!!;::!;;;!!?%&#@@$$$$$$$$$$$#
@@@@@@@@@@@@@@@@@?*=$$&$=*!*+&&+:--:;!::--~~~--:;!*+*!;+**!::;?%&$@@$$$$$$$$$$$#
@@@@@@@@@@@@@@@@@?*?$$=?+***=&+:---:!!:-~~~~~--:;!+?+*+&?+;:!*?=&$#@#$$$$$$$$$##
@@@@@@@@@@@@@@@@#+!?$$=+*+*+&%!::*+**+?:-------:;!*???&$&+;;:;?%%&#@@$$$$$$$$###
@@@@@@@@@@@@@#&%=!!?$$?:;??=&&+!!+==?=?;;::::;;!+?=%&&$$&+;:;+??=??$$$$$$$$$$###
@@@@@@@@@@@#%;!+!!!?$$%++==&#$=+*+%%=&?*!!!!!!*+=%&&&$$#$?!;+**%?*:?&??%$$$$####
@@@@@@@@@@$!-;;;*!*?$$$#$&&$##$=??=%%&??**+**+=%&&$$$####?**!:;%!-:*&$?+=$#$####
@@@@@@@@@&!---!?!!*=$$$@####@@$%+?+%%$?=?++!*?%&$#@@@#@@$;;::-:=?--!%#?&*?$#####
@@@@@@@#=!!~-*==!!+=$$$@$$##@@$%?++?+?+?**+*+?%&$#@@@#@#?:~~--;%=---?$=?&;+$####
@@@@@@#=**:;=%$?!!+%$$#@&?&@#@#&=*+?==+*!*+*+=%&$#@@##@?*~,,~~;%+:--?$=!&=:&####
@@@@@@&**;,!%&$?!*+%$$#@??;&@@@&=*+==++*!***?=&&##@###$!-,,,,,~=?;-;=&?*?&*?####
@@@@@@$;:~-+=%&=*+?%$$$%!!~*#@@$%????++?*+*+?=&$######+:,,,,~-,:+::+%&?!+=?=####
@@@@@@#!~~!=%%&&*+=%&&+*;!,!&@@#&?+???=*!+*+?=&$$####$;~-;+=%%*!*!=&&&=:*=&$####
@@@@@@@;~~+===%$?+=&&+**:;~!=#@#&?+?%?+!*+*+?%%$$####&:*%&&&$$&&$##$$&=*%#######
@@@@@@&:--!++==%=?=%*:=&---*?&@@$=?=?++*++*+=%&$#####=;=&&&$$$&&$######@####@@##
@@@@@@+;;:+==?*;?==;,*%?;~;*?&#@$=???++++++?=%&$$####%%&$$$#&==%$###@@@@@@@@@###
@@@@@$+???=%?;::*+!.~==;*:+?=&#@#=+=?=?*+++?=%&$######$=?=%%?!;!%&&$##@@@@@@####
@@@@@%====%?::::;+:~;&&!+*=%&$$@#=?%=?**+*+==&&$#@###$*~-:=&&!:-=$=&&%$@@@@####@
@@@@@=+*+=%+-:::!=!-+$&!++&&$$$#@%=%???+?+?=%&$$#@#$*~:;:!%&=--,+#++=?%&$#@@###@
@@@@@?*!+==;--::??::=$%?*?&&$$$#@%=%?+=+?+?=%&$###%:~~::-?==;~,~;$%?+?%&%%&$@##@
@@@@@$+!?=*:;;:!+!:+%&&$!%&$$$$@@%=%==++++?=%&$##?-~~-~~-??!:-~~-&&%**?=$??&###@
@@@@@@&+?*!!!;!*!!%$$$$#=&$$$$#@@%%%==+?++?=&&$#+-~~~~~~-?+:~--~-=&&+:;+$$+=##@@
@@@@@@#%****+?%&&$$$$$##$$$$$##@#%&===??+??%&$$*!!:~~~~;-*!;:----*=$=;:!&$%!##@@
@@@@@@@$&%%&$$$$$$$$######$###@@$=%==?+?+?=%&$&!*+!::::++;;:::---;=&&=;;%#$*$##@
@@@@@@@@$$#####$$######@#####@@#%=&%=++???=%%&$**++????+??*++++***?%&&*;%##?$##@