#include <bits/stdc++.h>
using namespace std;
long long ans = 0;
const int maxn = 2e5;
vector<int> g[maxn];
int d[maxn];
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int u, v, i = 1; i <= m; i++) {
    scanf("%d%d", &u, &v);
    if (u > v) swap(u, v);
    g[u].push_back(v), ++d[u], ++d[v];
  }
  int q;
  scanf("%d", &q);
  for (int i = 1; i <= n; i++) ans += (d[i] - g[i].size()) * g[i].size();
  printf("%lld\n", ans);
  for (int z = 1; z <= q; z++) {
    int k;
    scanf("%d", &k);
    ans -= (d[k] - g[k].size()) * g[k].size();
    for (int x : g[k]) {
      ans -= g[x].size() * (d[x] - g[x].size());
      g[x].push_back(k);
      ans += g[x].size() * (d[x] - g[x].size());
    }
    g[k].clear();
    printf("%lld\n", ans);
  }
}
