#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#include<iomanip>
#include<string.h>
#include<vector>
#include<queue>
#include<map>
using namespace std;
int n, a[200002], b[200002], indexes[200003], t = 0, ans = 0, current = 0;
void in()
{ scanf("%d", &n);
  for (int i = 0; i < n; i++)
  scanf("%d", &a[i]);
  
  for (int i = 0; i < n; i++)
  scanf("%d", &b[i]);
}

void make()
{ for (int i = n; i < 2 * n; i++)
  { a[i] = a[i - n]; b[i] = b[i - n]; indexes[b[i]] = i - n; }
  
  if (n > 11000) n = 11000;
  
  for (int i = 0; i < n; i++)
  { int y = indexes[a[i]];
    for (int j = i; j < n + i; j++)
    if (a[j] == b[y++]) current++;
    
    if (current > ans) ans = current;
    current = 0;
   }
  
  //printf("%d\n", ans);
  cout << ans << endl;
}

int main()
{ 
  in();
  make();
  
  //cin >> n;
  return 0;
}
