#include<bits/stdc++.h>
using namespace std;
vector <int> des[5010];
int a[5010];
int dfs(int s,int pre)
{
	for (int k=0;k<des[s].size();k++) if (des[s][k]!=pre) if (a[des[s][k]]<a[s]) if (!dfs(des[s][k],s)) return 1;
	return 0;
}
int main()
{
	int n;scanf("%d",&n);
	for (int i=1;i<=n;i++) scanf("%d",&a[i]);
	for (int i=1;i<n;i++)
	{
		int u,v;scanf("%d%d",&u,&v);
		des[u].push_back(v);des[v].push_back(u);
	}
	for (int i=1;i<=n;i++) if (dfs(i,0)) printf("%d ",i);
}