#include <bits/stdc++.h>
#define int long long
using namespace std;
const int hutao = 5e5 + 5;
int n, m, a[hutao], ans, b[hutao];
int v[hutao], vv[hutao];
bool f(int aa){
int cnt = 0, sum = INT_MAX, ret = 0;
for(int i = 1; i <= m; i++){
if(vv[a[i]] != 0){
if(sum == INT_MAX){
sum = abs(vv[a[i]] - v[a[i]]);
}
if(b[i + sum] == a[i] || b[max(0ll, i - sum)] == a[i]){
cnt++;
}else{
ret = max(ret, cnt);
cnt = 0;
sum = INT_MAX;
}
}else{
if(sum == INT_MAX){
continue;
}
ret = max(ret, cnt);
cnt = 0;
sum = INT_MAX;
}
cout << sum << " " << cnt << " " << ret << endl;
}
return ret >= aa;
}
int d(){
int ret = 0;
for(int i = 1; i <= n; i++){
ret += v[i] == 0 && vv[i] == 0;
}
return ret;
}
signed main(){
cin >> n >> m;
for(int i = 1; i <= m; i++){
cin >> a[i];
v[a[i]] = i;
}
for(int i = 1; i <= m; i++){
cin >> b[i];
vv[b[i]] = i;
}
int r = n, l = 0;
while(l < r){
int m = (l + r + 1) >> 1;
if(f(m) == 1){
l = m;
}else{
r = m - 1;
}
}
cout << l + d();
return 0;
}