#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], vvv[hutao];
bool f(int aa){
int ret = 0;
fill(vvv + 1, vvv + m + 1, 0);
for(int i = 1; i <= m; i++){
if(vv[a[i]] != 0){
vvv[(a[i] - vv[a[i]] + m) % m]++;
}
}
for(int i = 1; i <= n; i++){
ret = max(ret, vvv[i]);
}
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;
}