#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int tn, tree[1212121];
int max(int a, int b) { if (a < b)return b; return a; }
void insert_g(int w, int g) {
for (int i = w + tn; i > 0; i /= 2) tree[i] = max(tree[i], g);
}
int search_g(int ss, int ee) {
int s = ss + tn;
int e = ee + tn;
int res = 0;
while (s <= e) {
if (s % 2 == 1)res = max(res, tree[s++]);
if (e % 2 == 0)res = max(res, tree[e--]);
s /= 2; e /= 2;
}
return res;
}
int a[121212], b[121212], bw[121212];
int main() {
int n, i, j;
scanf("%d", &n);
for (tn = 1; tn < n; tn *= 2);
for (i = 0; i < n; i++)scanf("%d", &a[i]);
for (i = 0; i < n; i++)scanf("%d", &b[i]),bw[b[i]]=i;
for (i = 0; i < n; i++) {
vector<int>L;
for (j = -4; j <= 4; j++) {
if (a[i] + j <= 0 || a[i] + j>n)continue;
L.push_back(bw[a[i] + j]);
}
sort(L.begin(), L.end());
for (j = L.size() - 1; j >= 0; j--) {
int next = L[j];
insert_g(next, search_g(0, next - 1) + 1);
}
}
printf("%d", tree[1]);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCB0biwgdHJlZVsxMjEyMTIxXTsKaW50IG1heChpbnQgYSwgaW50IGIpIHsgaWYgKGEgPCBiKXJldHVybiBiOyByZXR1cm4gYTsgfQp2b2lkIGluc2VydF9nKGludCB3LCBpbnQgZykgewoJZm9yIChpbnQgaSA9IHcgKyB0bjsgaSA+IDA7IGkgLz0gMikgdHJlZVtpXSA9IG1heCh0cmVlW2ldLCBnKTsKfQppbnQgc2VhcmNoX2coaW50IHNzLCBpbnQgZWUpIHsKCWludCBzID0gc3MgKyB0bjsKCWludCBlID0gZWUgKyB0bjsKCWludCByZXMgPSAwOwoJd2hpbGUgKHMgPD0gZSkgewoJCWlmIChzICUgMiA9PSAxKXJlcyA9IG1heChyZXMsIHRyZWVbcysrXSk7CgkJaWYgKGUgJSAyID09IDApcmVzID0gbWF4KHJlcywgdHJlZVtlLS1dKTsKCQlzIC89IDI7IGUgLz0gMjsKCX0KCXJldHVybiByZXM7Cn0KaW50IGFbMTIxMjEyXSwgYlsxMjEyMTJdLCBid1sxMjEyMTJdOwppbnQgbWFpbigpIHsKCWludCBuLCBpLCBqOwoJc2NhbmYoIiVkIiwgJm4pOwoJZm9yICh0biA9IDE7IHRuIDwgbjsgdG4gKj0gMik7Cglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKXNjYW5mKCIlZCIsICZhW2ldKTsKCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspc2NhbmYoIiVkIiwgJmJbaV0pLGJ3W2JbaV1dPWk7Cglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJdmVjdG9yPGludD5MOwoJCWZvciAoaiA9IC00OyBqIDw9IDQ7IGorKykgewoJCQlpZiAoYVtpXSArIGogPD0gMCB8fCBhW2ldICsgaj5uKWNvbnRpbnVlOwoJCQlMLnB1c2hfYmFjayhid1thW2ldICsgal0pOwoJCX0KCQlzb3J0KEwuYmVnaW4oKSwgTC5lbmQoKSk7CgkJZm9yIChqID0gTC5zaXplKCkgLSAxOyBqID49IDA7IGotLSkgewoJCQlpbnQgbmV4dCA9IExbal07CgkJCWluc2VydF9nKG5leHQsIHNlYXJjaF9nKDAsIG5leHQgLSAxKSArIDEpOwoJCX0KCX0KCXByaW50ZigiJWQiLCB0cmVlWzFdKTsKCXJldHVybiAwOwp9