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