#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  set<int> v[m + 1];
  int ans = m - 1;
  for (int a, i = 1; i <= n; i++) {
    scanf("%d", &a);
    if (!v[a].empty() && *prev(v[a].end()) != i - 1) ans++;
    v[a].insert(i);
  }
  printf("%d\n", ans);
  for (int a, b, i = 1; i < m; i++) {
    scanf("%d%d", &a, &b);
    if (v[a].size() < v[b].size()) v[a].swap(v[b]);
    for (int t : v[b]) ans -= v[a].count(t - 1) + v[a].count(t + 1);
    v[a].insert(v[b].begin(), v[b].end());
    v[b].clear();
    printf("%d\n", ans);
  }
}
