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