#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 1, inf = 1e9;
int a[maxn], b[maxn], c[maxn];
vector<int> LIS;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = n - 1; i >= 0; i--) cin >> b[i];
  for (int i = 0; i < n; i++) {
    c[a[i]] = i;
  }
  for (int i = 0; i < n; i++) {
    b[i] = c[b[i]];
  }
  LIS.push_back(-inf);
  for (int i = 0; i < n; i++) {
    int x = lower_bound(LIS.begin(), LIS.end(), b[i]) - LIS.begin();
    if (x == LIS.size())
      LIS.push_back(b[i]);
    else
      LIS[x] = b[i];
  }
  cout << LIS.size() - 1;
}
