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