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