#include <bits/stdc++.h>
using namespace std;
set<int> grau[100300];
int cor[100300];
bool esta[100300];
int n, m;
int main() {
  cin >> n >> m;
  memset(esta, false, sizeof esta);
  for (int i = 0; i < n; i++) cin >> cor[i];
  for (int i = 0; i < n; i++) cor[i]--;
  for (int i = 0; i < n; i++) esta[cor[i]] = true;
  int a, b;
  for (int i = 0; i < m; i++) {
    cin >> a >> b;
    a--;
    b--;
    if (cor[a] != cor[b]) {
      grau[cor[a]].insert(cor[b]);
      grau[cor[b]].insert(cor[a]);
    }
  }
  int r = 0;
  int k = -1;
  for (int i = 0; i < 100200; i++) {
    if (esta[i]) {
      if (k == -1) {
        k = i;
        r = grau[i].size();
      } else if (grau[i].size() > r) {
        k = i;
        r = grau[i].size();
      }
    }
  }
  cout << k + 1 << endl;
  return 0;
}
