#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 10;
int N, K;
int A[MAXN], B[MAXN];
int pos[MAXN];
bool has[MAXN];
int bit[MAXN];
void update(int x) {
  for (; x < MAXN; x += (x & -x)) {
    bit[x]++;
  }
}
int query(int x) {
  int s = 0;
  for (; x; x &= x - 1) {
    s += bit[x];
  }
  return s;
}
int query(int x, int y) { return query(y) - query(x - 1); }
int main() {
  scanf("%d %d", &N, &K);
  for (int i = 1; i <= N; i++) {
    scanf("%d", &A[i]);
    pos[A[i]] = i;
  }
  for (int i = 1; i <= K; i++) {
    scanf("%d", &B[i]);
    has[B[i]] = true;
  }
  set<int> st;
  st.insert(0);
  st.insert(N + 1);
  long long ans = 0;
  for (int i = 1; i <= N; i++) {
    int p = pos[i];
    if (has[i]) {
      st.insert(p);
    } else {
      set<int>::iterator it = st.upper_bound(p);
      int right = *(it--);
      int left = *it + 1;
      ans += right - left - query(left, right);
      update(p);
    }
  }
  cout << ans << endl;
}
