#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10;
const int maxm = 1e3 + 5;
const int mod = 1e9 + 7;
int p[maxn], n, k;
bool vis[maxn];
long long v[maxn];
inline int lowbit(int x) { return x & (-x); }
inline void modify(int i, int val) {
  while (i <= n) {
    v[i] += val;
    i += lowbit(i);
  }
}
inline long long query(int i) {
  int res = 0;
  while (i > 0) {
    res += v[i];
    i -= lowbit(i);
  }
  return res;
}
inline void solve() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i < n + 1; i++) {
    int x;
    scanf("%d", &x);
    p[x] = i;
    modify(x, 1);
  }
  for (int i = 1; i < k + 1; i++) {
    int x;
    scanf("%d", &x);
    vis[x] = 1;
  }
  set<int> s;
  s.insert(0);
  s.insert(n + 1);
  long long ans = 0;
  for (int i = 1; i < n + 1; i++) {
    if (vis[i])
      s.insert(p[i]);
    else {
      auto it = s.upper_bound(p[i]);
      int R = *it - 1;
      int L = *(--it);
      ans += query(R) - query(L);
      modify(p[i], -1);
    }
  }
  printf("%I64d\n", ans);
}
int main() {
  solve();
  return 0;
}
