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