@@@@@@@%)>#@@@@@@@@@@@@@@@####$%%&$$$&>>>+)?%%==??=&$$$##@@@@@@@@@@@@###$$$&&&&%%%%%====?====%%%&&&&&$$$###@@@@@@@@@@####$$$$$$$$#@@@@@@@@#####$$$$$$$$#######$$
@@@@@@#;--?@@@@@@@@@@@@@###$$$=%&$$$$?>+>++=%%==>?&&$$$###@@@@@@#@###$$&&%%%%%======?????>>>>????===%%%&&$###@@@@@@@@@###$$$$$$$$@@@@@@@@#####@#$$$$$$$$$###$$$$
@@@@@@#+-:=#@@@@@@@@@@@@#@#$$&%&$$$&&>>++++%%==??%&%&&$###@@@@#@###$&%%===?????>>>>>>>>++++++>>>>>>????==%&$####@@@@@@#####$$$$$#@@@##########@#$$$$$$$$$$$$$$&$
@@@@@@@@&&#@@@@@@@@@@@@@@@#$&=%&$$$&=>+>+)>&%==??%%%&&$###@@@####$&%==??>>>>+++++))))*****)++))))+++++>??=%&&$###@@@@@@#####$$$#@@##$$########@@$$$$$$$$$$$&&&&$
@@@@@@@@@@@@@@@@@@@@@@@@@@#$&&&$$&$&?>>>+)?&==??=%==&&$$##@@####&&%??>>+)))))))**!**!!!****!!!!!!****)>>>?==&&$####@@@@####$$#####$&&$########@@#$####$$&&&&&&&$
@@@@@@@@@@@@@@@@@@@@@@@@@@#&&&$$&&&&?>>++*?&==??==?%&&$$##@@###$%=?>+)))******!!!*!;;;;!!;:::::::;;!!*+++>?==&&$$#######$$$$$$$$$&%&&$$#@#####@@######$$&&&&&&&$
@@@@@@@@@@@@@@@@@@@@@@@@#@$$&&$&&&&&?>>+>*?%%=??=?==&&$$######$&%?>+))***!!!!!!!!;;;;;;::-:-----:::;;!))+>>?=%%&$$########$$$$$&&&&&$$$#@#############$$&&%%%&&$
@@@@@@@@@@@@@@@@@@@@@@##@#$$&&&&&&&%=>>>+!>%%??>=??%&&$$####$$&%=>+))**!!!!;;;;;;::::-----~------::::;**)+>>?=%%&$$$$#$$$$$$&&&&&&&$&$##@#######$$$$$$$$&&%%%&&$
@@@@@@@@@@@@@@@@@@@@@##@@#$&&&&%%&&%%?>>>!+==??????=&&$$$#$$$&%=>+))**!!!!;;;;:::::----~~~~~~~~~---::;!**)+>>?=%%&&&$$&$$$$&$&&&&$$$$#@#@#@#####$$$$$$$$$&&&&&&$
@@@@@@@@@@@@@@@@@@@@@#@@###&&&%%&&&%%?>>+*)==??????=&%$$$$$$&%=?>+))**!!;;;;:::::----~~~~~~~~~~~~--:::;!**)+>??==&&&&$$&$$$$&$$$$&$$#@@#####$$#$$$$$$$$$$$$&&$$$
@@@@@@@@@@@@@@@@@@@@@@@@###&&&=%&&$&%=>>+*!==????=?=%%&$$$$&%=?>+))**!!!;;;::::-----~~~~~~^^^^~~~~--:::;!**+>>>?=%%%&&&$&&&&$&&$$$$##@#####$$$#$$$$$$$$$$#$$$$$$
@@@@@@@@@@@@@@@@@@@@@@@####&&&=%$$$&%=>>>*!>=?>??=?%=%&&$$&&%=?>+))**!!;;;::::-----~~~~~^^^^^^^^~~~--::;;!*)>+>>?===%&&&&&&&&&$$$###@#####$&$#$$$$$$$$$$$####$$$
@@@@@@@@@@@@@@@@@@@@@@@####&&%=&$$$&&%?>>)!+=???>==%=%%&$&&%=?>++))**!!;;;:::-----~~~~~^^^^^^^^~~~~--:::;!!*)>>????==%&&&&&&&&&$$$####@@#$$$$#$$$$$$$$$$$$$$$$$$
@@@@@@@@@@@@@@@@@@@@@#@####$&%%&$$$&&&=>>+**==????%%==%&&&%%=?>++)**!!;;;;::-----~~~~~~^^^^^^^^~~~~--:::;;!*)+>>?=???=%%&&%&&&&$$$##@@@##$$$$##$$$$$&&&&&&&$$$$&
@@@@@@@@@@@@@@@@@@@@@#####$$&%%$$$$$$&=?>++!=%??=?%%%=%%&&%=?>++))**!!;;;::------~~~~~^^^^^^^^^^~~~--:::;;;!*)>>?==?=?==%&&&&&$$###@@@####$$###$$$$&&&&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@@@######$&%&$$$$$$$==?+?*>&?===%%%=%%&%%=?>++)**!!;;;:::-----~~~~~^^^^^^^^^^^~~~---::;;!!*))??%==?====%%&&&&$$##@@###$$$#####$$$&&&&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@@##$###$$&%&$$$$$$$&=?>>>)&===%%%%=%%%%=?>>+))*!!!;;::::-----~~~~~^^^^^^^^^^^~~~---::;;;!!*)>?=%%?=%==%%%&&&$$####@@##$##@@##$$$$&&&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@#######$$&%&$$$$$$$$%=>??+%&==%%%%%%%%%?>>+))**!!;;;:::----~~~~~~~^^^^^^^^^^^~~~---::;;;!!!*+>?%%==%%%%%&&$$$$#########@@@@##$$$&&&&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@#$######$&%&$$$$$$$$&%??=>=&=%%%%%%%%%=?>+))**!!!;;:::----~~~~~~^^^^^^^^^^^^^^~~---:::;;;!!!*+?=&==%%%%&&$$$$########@@@@@@@#$$$&&&&&&&&&&&$$
@@@@@@@@@@@@@@#@@##$$######$&%$$$$$$$$$&%==%=>&%%%&&&%%%=?>++)**!!!;;::::---~~~~~~~^^^^^^^^^^^^^^~~---:::;;;!!!!)>?%%==%%%&&$$$########@@@@@@@##$$$&&&&&&&$$$$$$
@@@@@@@@@@@@@#@@@#$$#######$&=$$$$$$##$$&%=%%?&&%&&%&%&=?>++))**!!;;;:::---~~~~~~~^^^^^^,,,^^^^^^~~~---::;;;;!!!*)+?%===%&&&$#######@@@@@@@@@@##$$$$$$$$$$$$####
@@@@@@@@@@@@#@@##$$########$&%$$$$$####$&%%%&=%$%&&&&%%??>+))**!!!;;;:::----~~~~~^^^^^^^,,,,,^^^^^~~---:::;;;!!!!*)>?=?%&&$&$#####@@@@@@@@@#@###$$$$$$##########
@@@@@@@@@@@#@@@#$$#########$%%$$$$$$###$$&%%&&%$&&&&&%%%%=?>+)**!!;;;::::---~~~~~~^^^^^^,,,,,,,^^^~~~--:::;;;!!!!**)>=%=%$$$$#####@@@@@@@@@@@@##################
@@@@@@@@@@#@@@##&##########&%&$$$$$####$$&%%&&%$&&&&&$$$#$$$%=>+)**!!;;:::---~~~~~~~^^^^^^^^,,,,^^^~~---:::;;!!!!**)+>=%&$$$$###@@@@@@@@@@@@@@##############$$$$
@@@@@@@@@@@@@##$$########$$&=&$$$$$#####$$&&&&&$&&&$$$####$$$&&%=?>>+!!;;:::----~~~~~~~~^^^^^^^^^^^~~---:::;;;;!!!**)+>=&$######@@@@@@@@@@@@@@#########$$$$$$$$$
@@@@@@@@@@@@@#$$##########$%%$$$$$$####$$$&%&&&&$&&$$$#####$$$$$&&%%=>)!!;;:::-----~~----~~~~~~~~---:::;;;;;;;;!!!**)+>?%$#####@@@@@@@@@@@@@@@##$#$$$$$$$$$$$$$$
@@@@@@@@@@@@#$$$#########$&=$$$$$$$###$$$$&&&$$&$$$$$$$$$$#####$$$$&&%?+)!;;;:::-----::::;!*)))++>>>+>>>>>>)*!;!!!**)++>%$####@@@@@@@@@@@@@@@@#$$$$$$$$$$$$$&&&&
@##@@@@@@###$$$$#########$&=$$$$#$$$#$$$$$&&&$&$$$$&&&%%%&&$#######$$&%?+*!!;;:::::::;!*)+?==%&&%&&&&&%%%%===?)!!!**)++>=&###@@@@@@@@@@@@@@@@##$$$$$$$$$&$&&&&&&
#%&######@@$$$$##########&=&$$$$$$$$$$$$$$&&&$&$$$$$&&%%%%%&&$######$$&=?)*!!;;:::;;!*)+?=%%&&$&$$$$&&&&%&&&&&%?*!*))++>?&##@@@@@@@@@@@@@@@@@###$$$$$&&&&&&&&&&&
#$$########$$#$###@#####$%=$$$$$$$$$$$$$$$&&&$$$$$$$&&&%%%=%%&&$#####$$%=+)*!;;;::;;*+>?==&&$$$$$$$$$$$&&&%%%&&&&+*))++>?%$@@@@@@@@@@@@@@@@@@@@###$&&&&&&&&&&&&&
@#####@@##$$##$########$&=&$$$$$$$$$$$$$$$&&$$$$$$$$$&&%%==??=%&$$###$$&=?+)!!;::;;!)>?=%%&&&$$$$$&&%%==??>>>?%&&$?))+>>?%$#@@@@@@@@@@@@@@@@@@@@####$$&&&&&&&&&&
@@###@####&###$####$##$$%%$$$$$$$$$$$$#$$$&&$$$$$$$$$$$&&&%%=?>=%&$$#$$$%=>)!;;:::;!)>?=%%%&&&&&%%=??>>+++)))++?=&$?++>>?=$#@@@@@@@@@@@@@@@@@####$$###$&&&%&%&%&
@@#####$&&$##########$$&%$$$$$$&$$$$$$$&$$&&$$$$$$######&%%??>=%%%&$$$$$&%?)!;:--:;!)+?==%%%%%%==?>>>+++++++)))++?%$?+>>?=&#@@@@@@@@@@@@@@@@@#$#$$$$$$$$&&%&%&&&
@@@###$&$&##########$$$&$$$$$$$&$$$$$$$$$&%$$$$$$########$$%=>+)%$&&$$$$$%?)!:-~~-;!)+??=%%%===?>>+))))++>>>>+++++>%$>>>?=%#@@@@@@@@@@@@@@@@@##$$$$$$$$$&&&&&&&&
@@@###$$$$#########$$$&$$$$$$$$$$$$$$$$&$%&$$$$$$#@#@@@@@@@@##$&=%$$&$$$$&?);:~^~-:!)+?=%%====???>+)*!!!)+>???>>+++>%%>>??%$@@@@@@@@@@@@@@@@@@#$$$$$$$$&$&&&&&&&
@@@######$########$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$#@@@@@@#@@@#?&@#$&&$&$$$&?);-^^^-:!)>?=====%%&&%=??+>???>>??=??>>>>?%?>??%$@@@@@@@@@@@@@@@@@@##$$$$$$$$&$&&$$$$
@###$$$##########$$$$$$$$$$$$$$$$$$$$$&&%$$$$$$$$@@@@@@#$#$@@@@#$$#&&&&$$&?*:~^^~-:!)>?===%%&&&&%%==+)++?%&%=====??>>==???=&@@@@@@@@@@@@@@@@@@@#$$$&$$$$$$$$$$$$
@@#+:!%####$#####$$$$$$$$$$$$$$$$$$$$$&&&$$$&$$$##@@@@#$&$&&##&&?>&#$%%&$&?*:~^^~-;*)>>?==%&&&$$####$$$&%%%$$%%%==????????=&#@@@@@@@@@@@@@@@@@@##$$$$$$$$$#$$$$$
@@=.`.;$$#$$$$###$$$$#$$$$$$$$$$$$$$$&&&$$&$$$&$##@@@##$&&&%=>??++?&$%?%&%>!-~^^-:;*)+++>=%&$##$#@@%>#@@#$$$$$&%%%=???????=&#@@@@@@@@@@@@@@@@@@@#$$$$$$$$###$$$$
##+''.~&$$%?=&###$##$$$$$$$$$$$$$$$$&&&$$&&$$&&$##@@@##$$$$&&==>>+))>??%%=+;-~^~-:;!***!*=$$$&==$$@@@@@@@@@#$$$&%%==??????=&#@@@@@@@@@@@@@@@@@@@#$$$$$$$$###$$&&
@@#>;:+&%%$&&$###$$$$$$$$$$$$$$$$$$$&&&$$&&$&&&$$$######$$$$&&%%==>>>>?===):-~^~-:;;!!;:)=%&%=?>&%$@###$$#@@@#$&%%=???>>>?=&#@@@@@@@@@@@@@@@@@@@@#$$$$$$$$#$$$&&
@@##$$$&==$#$$#$######$$$$$$$$$$$$$&&$$$$&&&&&&&&&&&$$$$$$$$&%=?>))))+??=?*:-~~-:;;;;;:;!*)>?=?>??=%&$&%&$##@@#$&%=?>>>>>?=&#@@@@@@@@@@@@@@@@@@@@##$$$$$$$$$$$&&
@@@####$$#########$$$$$$$$$$$$$$$$&$$$$$&%%%&%%%%==????????>+))**!**)+>?=>!:~~~-:;;::;::;*>=%%%%%==>?=%&$####$$&%=?>>++>>?=&#@@@@@@@@@@@@@@@@@@###$$$&$$$$$$$$&&
@@@##############$$$$$$$$$$$$$$&&&$$$#$$%%%&%=%=?>++))))***!!!;;;!!*)+>?=+;-~~~:;;::::::::!+?%&&&&&&%&&&$###$&%==?>+)+++>?=$#@@@@@@@@@@@@@@@@@@###$$$$$$$$$$$$$$
@@@@@@##########$$$$$$$$$$$$$&&$$#$$$$$&=%&%===>+)**!!!!;;;;;:;;;;!*)+>??*;-~~-:;;::::----:;*+?%&&&&&&$$$$$$&=?>++)))))+>>=$#@@@@@@@@@@@@@@@@@@###$$$$$$$$$$$$$$
@@@@@@@######$$$$$$$$$&$&&$&$$####$$$&&=%$&%==?>)*!;;;:::::::::;;!!)+>??)!:-~~-:;;:::---~~~-:;!*+?=%&&&&&%%=>+)***!!**)++?%$#@@@@@@@@@@@@@@@@@@####$$$$$$$$$$&&&
@@@@@@@#######$$$$$$$$$$$$#######$$$&&==&$&%==>+*!!;;::::::::::;;!*)+??+!;:-~--:;;::---~~~~~~--::;!**)++++))**!!;;;!!*))+?%$#@@@@@@@@@@@@@@@@@@@##$$$&$$$$$$$&&&
@@@@@@#########################$$$&%%%$%&$%=%=>+*!;;:::::::::::;;!*+>?+*!;-----:;;:::--~~~~^^~~~~-----:::;;;;;;::;;;!**)>?%$@@@@@@##@@@@@@@@@@@@##$$&&&&&&$&&&&&
@@@@@########################$$$&&%%&$$%$&%%&=>+)!!;;::::::::::;!*)>?+*!;:-----:;;;::--~~^^^^^^^^^^~~~~~------::::;;!*))>?%$@@@@@#$$#@@@@@@@@@@@##$$$&&%&&&&&&&&
@@@@#########$#############$$&&&%%%&##&&$%%&&=>+)*!;;;::::::::;;!*+>>)!;:------:;!;;:--~~^^^^^^^^^^^^^^^~~~~----:::;!*)+>?%$@@@@@@@##@@@@@@@@@@####$$&&%%%&&&&$$
@@@#####################$$$&&&%=%&$$##&$&%&&&=?+)*!!;;:::::::::;!*>?>*;:-~~~~--::!!;;:-~~^^^^^^^^^^^^^^^^^~~~~---::;!*)+>?%$@@@@@@@@@@@@@@@@@@@#####$$&&&%%&&&$$
@@######$#############$$$$$&%%%$$$$##$%$%&$$&=?>+)*!!;;::::::::;!)>%=+!:-~^,^~-:;!!!;:-~^^^^,,,,,,,,,,,^^^^~~~--::;;!*)>?=&#@@@@@@@##@@@@@@@@@@####$$$$&&&%%&&$$
@####$$$$###############$&%%&$$$&&###&&&&$#$&%?>+)*!!;;;::::::;;!+%&&%>*;:--::;;;!!!;:-~^^,,,,,,,,,,,,,,^^~~~---::;!*)+>?=&##@#######@@@@@@@@@@@#$#$$$$&&&&%%%&&
#####$$$&$$############&&%&$#$&%&###$%&&#$#$$%=?>+)*!!;;::::::;;*=&$$$%?+)**)++)*!!;;;-~^^,,,,,,,,,,,,,^^^~~---::;;!*)>?=%$########$#@@@@@@@@@@@##$$$$$$&%%&&%%&
#####$#$$#$$#########$$&$##$&%%$###$&&&$###$$&=?>+)**!!;;:::::;!+&$$$$&%=?>>???>+*!;;;-~^^,,,,,,,,,,,,^^^~~---::;;!*)+>?=&$##$&&$#$&#@@@@@@@@@@####$$$$$&&%%&&&%
#@@####$$#$$########$$$##$&&%&####$$%&$####$$&%=?>+)**!;;;::::;!?&$#@@#$&%==%%=?>)!!!;-~^^,,,,,,,,,^^^^~~~---:::;!!*)>?=%&$$$$%%&$%&@@@@@@@@@@@####$$$$$&&%%%&&&
@######%&#$$#######$$#$$$&%&$#####$&&&#####$$$%=?>+))*!!;;::::;)=&$#@@@$$&%$#@@$=>)*!;-~~^^^,,,,,^^^^~~~~--:::;;!!*)+>?=&$$$$&%=%=?&@@@@@@@@@@@###$$$$$$&&%%=%&&
@######%&##$$#####$$#$$&&$$######$$%&$#@@@@#$$&%=?>+)**!;;;::;!+%$$###@$$&%&$@@#$=>+):~~^^^^^^^^^^^~~~~---:::;;!!*)+>?=%&$&&&%?>?>>$#@@@@@@@@@###$$$$$$$&&&%==&&
@##@##@&&###$###$##$$$$$#########$%&$##@@@###$&%=?>>+)*!!;;;;!*>=$##$$##$&%=?=%&&%=>*~^^^^^^^^^^^^~~~----:::;;!!*)+>?=%%&%?==?+)>+=#####@@##@@####$$#$$$&&&&==%&
###@@@@&%##$$$###$$$$$#########$$&&$##@@@@@##$$&%=?>+)*!!;;;;!)+?=&$$&&&&%=>)**>===>:^^^^^^^^^^^~~~----:::;;;!!*))+>?=%&%=+>?+*!+)&$$#############$$$$$$&&&&%=%&
##@@@@@%%##$$$#$$$############$$$&&$#@@@@@@##$$&%=?>+))*!!;;!*)+>??=%=????+;;!)?==>:^^,,^^^^^^~~~~---::::;;;!**))+>?=%%&=)*)+);;)>#$&$$##$$#######$$$$$$&&&%%%=&
#@@@@@@$%$$#$$$$$############$$$&&$#@@@@@@@###$$&%=?>+)*!!!!!**))++>>)!!))!--:!;;:-~^^,,,^^^^~~~~---::::;;!!**))+>?=%%%=);;))!:!+&#$%&&$#$$$$####$$$$$$$$&&%&%%%
@@@@@@@$%$$#$#$#############$$$$&$$#@@@@@@@###$$&%=?>>+)********)))**;-:;!;~~----~~^^^,,,^^^~~~----::::;;!!!*))+>?==%%%>)!**!:;+?##&%%%$$$&&$##$#$$$$$$$$&&&&&%&
@@@@@@@$&$$#########$$#$#$$#$$$&$$$@@@@#@@@###$$$&%=?>++)*****))))**!;:::;;-~~---~~^^^^^^^^^~~~---:::;;;!!**))+>??=%%%?);;*;:!++&$#&=?=$$&&&$##$#$$$$$$$$&&&$$&&
@@@@@@#$$$##########$$#$#$##$$$$#$&#@@@@@@@@###$$&%==?>++))))+++++++)*!:-~~~----~~~^^^^^^^^~~~---::;;;;!!**))+>>?==%%%>*;!>)+>+=$$#&=?=$$&&&$#$$#$$$$$$&$$$#$$&$
@@@@@@@$$$#########$$$####$$$$$$$$&##@#@@@@@###$$&&%=??>>>+>>?==?>>++))*;;;;;:----~~~^^^^^^~~--:::;;;!!!**))+>>?==%%%=+))++))*?#$#$&??=$&&&&$#$$#%$$$$&$###$$&&$
@@@@@@@$$$########$$$$$$#$$$$$$#$#$%##@@@@@####$$$&%%==????=&&&%==??>>>+)!;;;;!:::--~~~~~~~~---::;;;!!!**))++>??==%%%>)!.;)!*=$#$##&?>%$&&&&$$$$#%$$$$$#&%&&%&=$
@@@@@@@#$$########$$$$$$$$$$$$####$&$#@@@@@####$$$&&%%===%&$$$$&&%%===??>>+))****!:--~~~~~~---::;;;!!**)))++>>??=%%%=+*;.!))%#$$$#$%?>&&&&%&$$$$#$>&&&$&??%&%&%&
@@@@@@@#$########$$$$$$$$$$$$$####$$%#@@#@@#####$$&&&&%%&$######$$$&&&%%%==??>++++*;:-------:::;;;!!**)))++>>??==%%%?+*?>>?&##$$$#$=>?&&&&%&$$&$#&;>>?==?=&==&##
@@@@@#@#$#######$#$#$$$$$$$$$$####$$&&@@#@@@####$$$&&&&&&&&%%==%$###$$$$&&&%%==???>);:::--::::;;;!!***))++>>>???==%%=?++>=$###$$$#$?+%&&%&%&$$%$$%&++++>?=%>=&##
@@@@@@@#########$##$$&$$$$$$$######$$%#@#@@@####$$$$&&&&%===?>>??&#@@@###$$$&&&%%%==>!;;;:;;;;;!!!***))+++>>>???==%$#$&&$#####$$$$&>>&&&%&%&$$$$$$%*)++?=%?>=&##
@@@@@@@##############$$#$$$$######$$#$&@#@@@####$$$&&&&%==?>>>???%&$#@@@#$$$$$&&&&&%%>*!!!;;!!!!!***))+++>>>>???=%&@@@@@@#####$$$$=+%$&%%&%&$$$$$&+*)+?=%%+?=&##
@@@@@@@##############$$$$$$###@####$#$&##@@@###$$&&%%===?????===%%&$$#@@#####@@#$&&$&&?+)**!!!!****)))+++>>>>???=%&@@@@@######$$$&>?$$&%&%&$$&$%>+))+?=%&>+?%$##
#@@@@@@##############$$$$#$###@@@##$#$$%#@@@#$%?=%%=?????===%%%&&%&&$$$##$$&&&&&&&&$$&&%=>)*******)))++++>>>>??==%#@@@@#$$####$$$=>&$&%=&%$$$&$+**))+?%&%)>=&$#@
$#@@@@@#########$####$$$$$####@@@@##$#$&$#$&%%&%));=?>??=%%&&&&&&&%?+))))))*****!!*>=&$$&?+)*****)))++++++>>>??=%&@@@@@#$$####$$&?%$$&%=&&$$$$=*!!*)>=&$>?=%$##@
$#@@@@@###############$$$##$#$#@@@##$$#&%&%%==??=)!?%?==&&&&$&$$&?)!;:;!!;;:-~-;!!!!****)++)))***)))+++++>>>>?==%#@@@@##$$#$##$&=%&#$&%%&=$$$&*!;!*>?%$%+?=&$###
#@@@@@@###############$$$$##$###@##$$&&%%%??>>>>>%>=%%%&$$$$$##$?+*!;:;!;:--~-;!*)))*****)))))))))))+++++>>>??=%&@@@@@#$$#$##$$%%&$$$%%%$%=$=!;;;!)?=&$??=%$###@
@@@@@@@##@#############$$$$$$#$##$&&%==??>>>+??==%$=%$$$#######%?>+)))*))****)+++++)+>>)**))))))))++++++>>>??=%&$@@@@##$$####$&&&$$$&%%&#@##=*!!!*+?&$%%&&&$####
@@@@@@@####@###########$$$$#$$$&&%===?>>>>>>>=%%%&#&$$##@@@@@@#&==?>>>>>>>>>>>??>>?==?+)**))))))+++++++>>>??=%&$@@@@@#$$$$##$$&&$$#$&%%$#@@@$?)))+?&$&%&%%%$###@
@@@@@@@################$$#$&&%%==?>>>>>>???==&&&$$#$$#@@@@@@@@##$&%%============%&&%?>))))))))+++++++>>>>??=%&$#@@@##$$$###$#$$$$##$&&&#@@@@@#&%%%$$#&$&%=%&####
@@@@@@@@###@##########$$&&%%==??>>>>>?=?%%%%&$$$##@$#@@@@@@@@@@@##$$$&&&&&&&&$$$$&%?>+)))))))+++++>>>>>??==%&&#@@#@##$#$$#$#$$$$###$&&&##@@@@@@#####&##&%%%$####
@@@@@@@############$$&%%==?>>>>>>>>?=%=%&&$&$###@@@@@@@@@@@@@@@@@@@@@@#######$$&=?>+))))))))++++>>>>>???==%&$#@@@#@#########$$#####$&$$#@@@@@@@@###$$##$&%%%$$=&
@@@@@@@@##@#####$$&&%%=??>>++++>??=%%&&$$$$###@@@@@@@@@@@@@##$$&&&&&%%%%%%==?>+))*****)))))++++>>>>???==%&&$#@@@@#####$#####$#####$$$$$@@@@@@@@@@#$$####&%=>?$$=
@@@@@@@@#@#@##$&%%==???>>>>>>??==%%&$$$####@@@@@@@@@@@@@@@#$&%=?>+))***!!!;;::::;;!!!***)))+++>>>???==%&&$$&#@@@@##########$#######$@@@@@@@@@@@@@#&####$%+**)&#$
@@@@@@@@@#%>=#$%%=?>>++>>???=%%&&&$$####@@@@@@@@@@@@@@@@@##$%=>+)!;;:----~~~~~~--:;;!!***))++>>>??==%%&$$$&$#@@@@@#######@###@#####$#@@@@@@@@@@@#&#####$?*!!?&>&
@@@@@@@#+-^^-+$%=??>>>>?==%%&&$$$$##@@@#@@@@@@@@@@@@@@@@@#$&%?>)*!;:---~~^^^^~~--::;!!**)))+>>??==%&&$##$%&##@@@###@####@@#@@@#@###$#@@@@@@@@@@@$$@@@##&>*!?&^,:
@@@@@@$&=*~^~-=%==???==%&&&$$$$###@@#####@@@@@@@@@@@@@@@@##$%=>+*!;:::--~~~~~~---::;!!**))+>>?==%&&$$#$&%%$#$&$$$#@#$##@@#@@@@@######@@@@@@@@@@#&@@@@@#$?+?$!'`,
@@@@@@&????~^^:%%%==%%=&$$$$###@@@$$#$####@@@@@@@@@@@@@@@@#$&%?>)*!;;;::-------:::;;!!*))+>??=%&$$##$$&&%&##$=*))=$$&##@$@@@@@@#####@@@@@@@@@@#&#@@@@@##$$#$,``~
@@@@@@&++>&;,^~!$&%%%%$$$$$##@@###$&##$@###@@@@@@@@@@@@@@@##$&=?>))*!!!!;:::::::;;!!**)+>??=%&$$###$$&&%%%@##&>*>?$#$##$%@@@@@@####@@@@@@@@@@@&##@@#####$%=$*:;%
@@@@@@&%%%$>~^-:$$$$$###@@@@#######&$###@#@@@@@@@@@@@@@@@@@@#$&%=>++)))**!!!!;;!!!**))+>?=%&$#####$$&&%%==@@##$$$$$#$==)=@@@@@######@@@@@@@@@$$@@@@@##$&%+!+&&$#
@@@@@@##$&=%:-;!&@###@@@@###########&$##@@@@@@@@@@@@@@@@@@@@@#$$&%=?>>>++)))****)))+>>?=%&$######$$&&%%==%@@##$##$#$?***&@@@@@######@@@@@@@@#$@@@@@@##=?%$&=?%##
@@@@@@#&%$??;:+)&@@@@@#####$#$######$$###@@@@@@@@@@@@@@@@@@@@@##$$&%%%==??>>>>>>>>??=%&$$##@####$$&&%%===#@@@##$##$>**>=#@@@@@@######@@@@@@#&@@@@@@@@#%+&####&$@
@@@@@###&$&>))=%#@@@###$$###$########$#@@#@@@@@@@@@@@@@@@@@@@@@####$$$$&&&%%%==%%%%&$$##@@@####$$&&%%=%&#@@@@###$#%*+%$###@@@@#######@@@@@#&#@@@@@@@@##%+#@####@
@@@@####&&&&%$#########$$###$$##@#####$@@@@@@@@@@@@@@@@@@@@@@@@@@@#########$$$$$$####@@@@####$$$&&&%===#@@@@@#####%&$#######$$########@@@@$#@@@@@##@@@###$@@#@@#
@@@#####@&$&$@@#########$$###$###@####$#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######@@@@@@@####$$$$&&&%%===&@@@@@@###$#######@#####$######@@@$$@@@@@@#$######@@@@@@@
@@#####@@@@@@@@$####$####$$#$$$##@@####$#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####$$$$&&&%%%===%@@@@@@@@@####@@@@@@@@@#########@$&@@@@@@#$%&$$$###@@@@@@
@##@###@@@@@@@######$#####$$$$$$##@##@@#$#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####$$$$&&&&%%%%====$%&$#@@@@@##@@@@@@@@@@@#########&#@@@@@@@$#$$$$$###@@@@@
#@@@###@@@@@@@######$#######$$$$$#@@#@@@$##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####$$$$&&&&%%%%%%%===**)+=&$#@@@$@@@@@@@@@@@########&$@@@@@@@@@@@@@@@@##$###@
@@@@##@@@@@@@@######$##########$$##@##@@#$#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####$$$$$$&&&&%%%%%%%%=?>=&%%&&&&$####@@@@@@@@@@#######$$#####@@@@@@@@@@@####$###
@@@@##@@@@@@@@#####$############$&##@#@@@$#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####$$$$&&&&&&%%%%%%%%%%&$@@#######@@@#@@@@@@@@@@#############@@@@@@@@@@@###$$$$$$
@@@@##@@@@@@@####################$&#@##@@#$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####$$$$&&&&&%%%%%%%%%%%%&&&$@@####@@@@@##@@@@@@@@@@#########@@@@@@@@@@@@##@#$)$$$$$
@@@@#$#@@@@@######################$$#@#@@@$#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####$$$$&&&&&%%%%%%===%%%%&&&$##&$#@@@@@@@#@@@@@@@@@@#####@&$#@@@@@@@@@@@#@@@#&*&$&&$
@@@@@$@@@@@@#######################$$###@@#$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####$$$$&&&&%%%%%%=====%%%%&&$$##%$##@@@@@@##@@@@@@@@######@@@@@@@@@@@@@@#@@@@#$$$$&&&
@@@@@##@@@@@#########################$###@@$#@@@@@@@@@@@@@@@@@@@@@@@@@@@@####$$$$&&&&&%%%%%======%%%&&&$$######@@@@@@@#@@@@@@@######@@@@@@@@@@@@@##@@@@####$$&&&
@@@@@##@@@@@##############################@#$@@@@@@@@@@@@@@@@@@@@@@@@@@@@####$$$$&&&&%%%%========%%%&&&$$#####@@@@@@@@@#@@@@@@$#####@@@@@@@@@@@@#@@@@@###$#$&&%%
@@@@@@#@@#@##########################@####@@$#@@@@@@@@@@@@@@@@@@@@@@@@@@#####$$$&&&&%%%==========%%%&&$$$##&#@@@@@@@@@@#@@@@@@#####@@@@@@@@@@@##@@@@@@###&$$$%%=
@@@@@@##@@####@##@@#########$##@@##@###@###@#$@@@@@@@@@@@@@@@@@@@@@@@@@#####$$$&&&&%%%%==========%%&&&$$###@@@@@@@@@@@@@#@@@@######@@@@@@@@@##@@@@@@@@@###&&&%==
@@@@@@@#@@####@@#@#######@##$##@@@##@##@@###@$#@@@@@@@@@@@@@@@@@@@@@@@#####$$$&&&&%%%%====%&=====%%&&&$$#####@@@@@@@@@@@#@@@@######@@@@@@@@##@@@@@@@@@@@#$&%&&=%
@@@@@@@@@@#$##@@#@#########$$##@@@@#####@#####&@@@@@@@@@@@@@@@@@@@@@@######$$$&&&&%%%%====&#%===%&=&&&$$#######@@@@@@@@@#$########@@@@@@@@##@@#@@@@@@@@@##$$&&&%
@@@@@@@@@@#$###@@@########$&$#@@@@@@####@@#@##$$@@@@@@@@@@@@@@@@@#########$$$&&&&%%%%%===%?&#$&$#=>#&$$$#####&#@@@@@@@@$%==%$@####@@@@@@@#@@@@@@#@@@@@@#####$&&&
@@@@@@@@@@#$$##@@@###@####&$$#@@@@@@@###@@@#@#@$#@@@@@@@@@@@@@@@@#########$$$&&&&%%=?=%&$&=######$&#####@@####@@@@@@@@#$%+*=%#$&&$@@@@@##@@@@@@##@@@@@@#@@@##$&&
@@@@@@@@@@@$$###@@##@@####&$$##@@@@@@@####@#@@#@$#@@@@@@@@@@@@@@##########$$$&&&&%&&>>%####@@######@@@@@@@##@@@@@@@@@@#$&?>=%&%%=%$@@@#@@@@@@@###@@@@@@#@@####$$
@@@@@@@@@@@#&#####@#@@###$&$###@@@@@@@@#######@##$@@@@@@@@@@@@@@@########$$$$&&&&%%&#####@@@@@#@@#@@@@@@@@@#@@@@@@@@@@@$&%%%&&&=+=&@@#@@@@@@@#####@@@###########
@@@@@@@@@@@@$&######@@#@#&&$@@@@@@@@@@@@#####@@#@##@@@@@@@@@@@@@#########$$$$&&&&&%%&####@#@@@@@@#@@@@@@@@@@@#@@@@@@@@@@#$$#@$$&%%$@@@@@@@@@##$$##@############@
@@@@@@@@@@@@@&&######@#@#$&#@@@@@@@#@@#@#@@##@#@@@@#@#@@@@@@@@@##########$$$$&&&&&%%%#######@@@@@@@#@@@@@@@@@#@@@@@#@@@@@@@@@@#$$$#@@@@@@@@@##=)&####$#######@@@
@@@@@@@@@@@@@#%&#####@#@$$&@@@@@@@@###@@#@@#@#$@@@@@##@@@@@@##@#####$####$$$$&&&&&&%%$@##@#####@@@@@@@@@@@#$&$@@@@@=&@@@@@@@@$&%&##@@@@@@@@@@#&*>##$#$$$####@@@@
@@@@@@@@@@@@@@#%%########$&@@@@@@@#####@@###@$#@@@@@@#@@@@#########$$$$$$$$$$$$&&&&&&$######@####@@@#@@@@@#?%$$#@@#=>#@@@@@@$%%==%$@@@@@@@@#&&&&%$$$$$&$###@@@@#
@@@@@@@@@@@@@@@#%%#######&&@@@@@@#####@@@###@&#@@@@@@#@@@#########$$$$$$$$$$$$$&&&&&&$%>$#@@@@#######@@@@@#+=#@#%+>>%$###@@@$%=!)=&#@@@@@@$%=??=%&$&&$=%&$#@@@##
@@@@@@@@@@@@@@@@@&%$#####&&@@@@#######@@@#$#$&@@@@@@@@############$$$$$$$$$$$$$$&&&&&&>%##@@@@@@@###$####@#?$@@#$+!!)%####@@#&%==%&####@##%?????==%&&&???=%$###@
@@@@@@@@@@@@@@@@@@$%$####&&@###########@@$$#&$@@@@@@@############$$$&&&$$$$$$$$$$$&&&$$#@@@@@@@@@@@@#@####&#@@@@$);;*+&###@@@#$$&&$$&&&####&%%===%&&%%>>>>?==&$#
@@@@@@@@@@@@@@@@@@@#&$###&&@###########@#$$#%#@@@@@@########$$$##$$&&&&&$$$$$$$$$$$$$$$$$#@@@@@@@@@#@@@@@##@@@@#$!!!)%$####$@@#####$&%%&####$$$&&&&%=?++++>>>?=%
@@@@@@@@@@@@@@@@@@@@#$#$#&$@############$&$&&#@@###@######$$$$$$#$$&&&&&&&$$$$$$$$$$$$$$$$##@@@@@@#@@@#$###@####&*)=&$###$$@@@@@@@@#$&$$$$$$$$&&&%==?+)))))++>>?
@@@@#####@@@@@@@@@@@@##$$&$############$$&$&$#@@#########$$$$$$$$$&&%%%%&&&&&&&&&$$$$$$$$$$##$@@@@$#@@@#=?#####$%+)=$##$$##@@@@@@@@@#$$$$$%%%%%%=?>>)***)))))+++
@@#########@@@@@@@@@@###$&$###########&&$&&&$###########$$$&&&$$$$&&%%%%%%&&&&&&&&$$$$$$$&?$###@@#=$#@@@@#$$##$$$%=$##$##@@@@@@@@@@@@###$$&==???>>+)*********)))
###########@@@@@@@@@@####$&#########$%%&$&&&#########$$$$&&&&&&&$$&%=====%%%&&&&&&$$$$$&&&$$$##@@#&%##@@@@#$&%&&$$###$##@@@@@@@@@@@@@@@@&?#&?>>+))****!!*******)
###########@@@@@@@@@@######$#$$#$##$%=%&$%&$###$$###$$$$$&&&%&&&&$&%==?===%%%%%&&&&$$$&&&&$$$$$####&=#@@@@#$%==%$##$####@@@@@@@@@@@##@@@#==#$>+)))**!!!!!!!!!!**
$$$$$$$$######@@@@@@@#######$$$###$%=%%$&%&###$$$##$$$$&&&%%%%%%&&&%=?????==%%%%&&&&$$&&&&$$$$$$$###$#@@@##%??%$#$$###@@@@@@@@@@@@@######$>=#$?))*!!!!!!!!!!!!!*
$$$$$$$$$#######@@@@@#############&%%%&$&%##$&$$##$$&&&&%%====%%%&&%?>>>???===%%%%&&&&&&&&&$$$$#####@@@@@#&?+>&$$####@@@@@@@@@@@@@@######$=+=&#$?+***!!!;!!!!!!!
$$$$$$$$$$#######@@@#############$&&&$$&&$$%%&$###$&&%%%%==?====%%%=?>+>>>>???==%%&&&&&&&&&&$$$$#$##@@@@#%+*+%&$#@@@@@@@@@@@@@@@@@@@#####$$??=&$##$>!;;;;;;;;!!!
$&&&&&$$$$$#####@@@@#############$$$$#$&&%?=&$##$$&%%=====?????==%%=>++++++>>>??=%%&&&%%%&&&&$$$$###@@@#&)!>%&#@@@@@@@@@@@@@@@@@@@@######$$&+++>?&?!;;;;;;;;;;;!
&&&&&&&$$$$#####################$$$##$$&=?%$###$$&%==?????>>>>>??==?>)))))+++>>??=%%&&%%%%&&&$$$#####@@#+)?&$#@@@@@@@@#@@@@@@#@@@@@#######$$?++++%+!;;;;;;;;;;;;
&&&&&&&&$$$###############@#####$###$$&%%$####$$&&===?>>>>>++>>>???>+***))*)))+>?=%%%%%%%%%&&&$$#####@@?+=$#@@@@@@@@@#$@@@@@@$@@@@@########$&?>>>=>!!;;;;;;;;;;;
&&&&&&&&&$$$##############@#######$$$$$$#####$$$&%===>>++>++++++>>>>)*!***!!**)+>?=%%%%=%%%&&&$$$###@@$?&#@@@@@@@@@@@#?@@@@@@$@@@##########$$&====%!!!;;;;;;;;;: