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