#include <bits/stdc++.h>
using namespace std;
int A[200005];
int B[200005];
int D[100005];
pair<int, int> D2[100005];
vector<int> AdjList[100005];
int main() {
  int N, M;
  scanf("%d%d", &N, &M);
  for (int i = 1; i <= N; i++) {
    scanf("%d", &D[i]);
    D2[i] = pair<int, int>(D[i], i);
  }
  sort(D2 + 1, D2 + (1 + N));
  if (D2[1].first != D2[2].first) {
    printf("-1");
    return 0;
  }
  set<pair<int, int> > s;
  for (int i = 0; i < M; i++) {
    scanf("%d%d", &A[i], &B[i]);
    AdjList[A[i]].push_back(B[i]);
    AdjList[B[i]].push_back(A[i]);
    s.insert(pair<int, int>(A[i], B[i]));
    s.insert(pair<int, int>(B[i], A[i]));
  }
  if (!s.count(pair<int, int>(D2[1].second, D2[2].second))) {
    printf("-1");
    return 0;
  }
  throw;
  return 0;
}
