#include<bits/stdc++.h>
using namespace std;
const int MAX=5005;

int val[MAX];
vector<int> adj[MAX];
int st[MAX];

void dfs(int s,int p)
{
     for(int i=0;i<adj[s].size();i++)
     {
	int u=adj[s][i];
	if(u!=p)
	{
	   dfs(u,s);
	   if(st[u]==0&&val[s]>val[u])
	   {
		st[s]=1;
	   }
	}
     }
}

int main()
{
   int n;
   scanf("%d",&n);
   for(int i=1;i<=n;i++)
   {
	scanf("%d",&val[i]);
   } 
   for(int i=1;i<n;i++)
   {
	int a,b;
	scanf("%d %d",&a,&b);
	adj[a].push_back(b);
	adj[b].push_back(a); 
   }
   for(int i=1;i<=n;i++)
   {
	for(int j=1;j<=n;j++)
	{
	   st[j]=0;
	}
	dfs(i,0);
	if(st[i])
	{
	   printf("%d ",i);
	}
   }
}