func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX_N = 1000000 + 20;   int pos[MAX_N], mark[MAX_N];   int inter[MAX_N];   set<int> D;   long long ans;   int n, k;   void add(int x) {     for (; x <= n; x += x & (-x)) ++inter[x];   }   int get(int x) {     if (x < 1) return 0;     int res = 0;     for (; x > 0; x -= x & (-x)) res += inter[x];     return res;   }   int main() {     ios::sync_with_stdio(false);     cin >> n >> k;     for (int i = 0; i < n; i++) {       int x;       cin >> x;       pos[x] = i + 1;     }     for (int i = 0; i < k; ++i) {       int x;       cin >> x;       mark[x] = 1;     }     D.insert(0);     D.insert(n + 1);     for (int i = 1; i <= n; ++i) {       if (mark[i])         D.insert(pos[i]);       else {         int l, r;         set<int>::iterator it = D.lower_bound(pos[i]);         r = *it - 1;         --it;         l = *it + 1;         ans += r - l + 1 - get(r) + get(l - 1);         add(pos[i]);       }     }     cout << ans << endl;     return 0;   }   