#include <bits/stdc++.h>
using namespace std;
const int limN = 2e5 + 5;

int n, a[limN], b[limN], pos[limN], v[limN], st[4 * limN];

void update(int id, int l, int r, int pos) {
    if (l == r) {
        ++st[id];
        return;
    }
    int mid = (l + r) >> 1;
    if (pos <= mid) update(id << 1, l, mid, pos);
    else update(id << 1 | 1, mid + 1, r, pos);
    st[id] = st[id << 1] + st[id << 1 | 1];
}

int query(int id, int l, int r, int u, int v) {
    if (v < l || r < u) return 0;
    if (u <= l && r <= v) return st[id];
    int mid = (l + r) >> 1;
    return query(id << 1, l, mid, u, v) + query(id << 1 | 1, mid + 1, r, u, v);
}

int main() {
    ios::sync_with_stdio(false), cin.tie(nullptr);
    cin >> n;
    for (int i = 1; i <= n; ++i) cin >> a[i];
    for (int i = 1; i <= n; ++i)
        cin >> b[i], pos[b[i]] = i;
    for (int i = 1; i <= n; ++i) v[i] = pos[a[i]];

    int ans = 0;
    memset(st, 0, sizeof(st));

    for (int i = 1; i <= n; ++i) {
        int val = query(1, 1, n, v[i] + 1, n);
        if (val > 0) ++ans;
        update(1, 1, n, v[i]);
    }

    cout << ans << '\n';
    return 0;
}
