#include <iostream>
#include <cstdio>
using namespace std;

int a[300000];
int b[300000];
int d[100002];
int p[100002];
int c[100002];

int n;

void input()
{
    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 slowsolve()
{
    int k,p, c, cr, res=0;
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
        {
            c=0; k=i; p=j; cr=0;
            while(c<n)
            {
                if(a[k]==b[p]) cr++;
                c++; k++; p++;
                k%=n; p%=n;
            }
            if(cr>res) res=cr;
        }
    printf("%d\n", res);
    return;
}

void medsolve()
{
    for(int i=n; i<2*n; i++) a[i]=a[i-n];

    int res=0, cr=0;
    for(int i=0; i<n; i++)
    {
        cr=0;
        for(int j=i; j<i+n; j++) if(a[j]==b[j-i]) cr++;

        if(cr>res) res=cr;
    }

    printf("%d\n", res);
}

void fastsolve()
{
    int res=0;
    for(int i=0; i<n; i++) p[a[i]]=i;

    for(int i=0; i<n; i++)
    {
        if(p[b[i]]<i){
            p[b[i]]+=n;

        }
        d[b[i]]=p[b[i]]-i;
        c[d[b[i]]]++;
        if(c[d[b[i]]]>res) res=c[d[b[i]]];
    }

    printf("%d\n", res);
    return;
}

int main()
{
    input();

    /*if(n<=150)
    {
        slowsolve();
        return 0;
    }*/

    /*if(n<=3000)
    {
        medsolve();
        return 0;
    }*/

    fastsolve();

    //cout << 0 << endl;
    return 0;
}
