#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 7;
pair<int, int> a[maxn];
bool cmp(pair<int, int> a, pair<int, int> b) { return a.first > b.first; }
int main() {
  ios ::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  int x;
  for (int i = 1; i <= n; i++) {
    cin >> x;
    a[x].first = i;
  }
  for (int i = 1; i <= n; i++) {
    cin >> x;
    a[x].second = i;
  }
  sort(a + 1, a + n + 1, cmp);
  vector<int> f;
  f.push_back(a[1].second);
  for (int i = 2; i <= n; i++) {
    int id = lower_bound(f.begin(), f.end(), a[i].second) - f.begin();
    if (id == f.size())
      f.push_back(a[i].second);
    else
      f[id] = a[i].second;
  }
  cout << f.size() << endl;
  return 0;
}
