#include <bits/stdc++.h>
const int inf = 1 << 30;
const long long INF = 1ll << 61;
using namespace std;
set<int> my_set;
set<int>::iterator it;
int n, k;
int aa[1000000 + 55];
int bb[1000000 + 55];
long long c[1000000 + 55];
void init() {
  memset(aa, 0, sizeof(aa));
  memset(bb, 0, sizeof(bb));
  memset(c, 0ll, sizeof(c));
  my_set.clear();
}
int lowbit(int x) { return x & (-x); }
void add(int i, int val) {
  while (i <= n) {
    c[i] += val;
    i += lowbit(i);
  }
}
long long get_sum(int i) {
  long long sum = 0;
  while (i > 0) {
    sum += c[i];
    i -= lowbit(i);
  }
  return sum;
}
bool input() {
  while (cin >> n >> k) {
    for (int i = 1; i <= n; i++) {
      int x;
      scanf("%d", &x);
      aa[x] = i;
      add(i, 1);
    }
    for (int i = 1; i <= k; i++) {
      int x;
      scanf("%d", &x);
      bb[x] = 1;
    }
    return false;
  }
  return true;
}
void cal() {
  long long ans = 0ll;
  my_set.insert(0);
  my_set.insert(n + 1);
  for (int i = 1; i <= n; i++) {
    if (bb[i])
      my_set.insert(aa[i]);
    else {
      it = my_set.upper_bound(aa[i]);
      int r = *it - 1;
      it--;
      int l = *it;
      ans += get_sum(r) - get_sum(l);
      add(aa[i], -1);
    }
  }
  cout << ans << endl;
}
void output() {}
int main() {
  while (true) {
    init();
    if (input()) return 0;
    cal();
    output();
  }
  return 0;
}
