336508e0f56948bffafdc46315ec7fc98b50f0b36c82a75ca2b3298712228c6f
// https://szkopul.edu.pl/problemset/problem/JCfzwDb9eO9yeeHtMsmpH9c4/site/?key=statement
#include <iostream>
#include <vector>
constexpr int sizik = 1000 * 1001;
int tab[sizik];
int main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
int n;
std::cin >> n;
if (n == 1) {
std::cout << 1 << '\n';
return 0;
}
std::vector<int> v(n);
for (int i = 0; i < n; i++) {
std::cin >> v[i];
}
for (int i = 1; i <= n; i++) {
int a;
std::cin >> a;
tab[a] = i;
}
int ans = 1, curr = tab[v[v.size() - 1]];
for (int i = v.size() - 2; i >= 0; i--) {
auto d = tab[v[i]];
if (curr == 1) {
if (i != v.size() - 2) {
ans++;
}
curr = d;
continue;
}
if (d < curr && d != 1) {
ans++;
}
curr = d;
}
std::cout << ans << '\n';
return 0;
}