#include using namespace std; int main(){ int n; cin>>n; vector s(n); vector> vp(n); for (int i=0;i>s[i],vp[i]={s[i],i}; sort(vp.begin(),vp.end()); vector> g(n); for (int i=0;i>a>>b; a--;b--; g[a].push_back(b); g[b].push_back(a); } vector dp(n); for (auto [val,v]:vp){ for (int u:g[v]){ if (s[u]>=s[v]) continue; dp[v]=max(dp[v],dp[u]); } dp[v]+=s[v]; } cout<<*max_element(dp.begin(),dp.end())<