#include<bits/stdc++.h>
usingnamespacestd;#define int long long
#define pii pair<int,int>
#define ft first
#define sd second
constintN=5e6+5;intn,m;intt[N],b[N];piia[N];inttr[N];inttmp[N],tot;map<int,int>Hs;voidadd(intx,intk){for(;x<=tot;x+=x&-x)tr[x]=max(tr[x],k);}intquery(intx){intc=0;for(;x;x-=x&-x)c=max(c,tr[x]);returnc;}boolcmp(piix,piiy){if(x.ft!=y.ft)returnx.ft<y.ft;returnx.sd>y.sd;}signedmain(){scanf("%lld%lld",&n,&m);intMax=0;for(inti=1;i<=m;i++)scanf("%lld",&t[i]),Max=max(Max,t[i]);for(inti=1;i<=m;i++){scanf("%lld",&b[i]);tmp[++tot]=b[i]-(Max-t[i]);tmp[++tot]=b[i]+Max-t[i];}sort(tmp+1,tmp+tot+1);for(inti=1;i<=tot;i++)Hs[tmp[i]]=i;for(inti=1;i<=m;i++){a[i].ft=Hs[b[i]-(Max-t[i])];a[i].sd=Hs[b[i]+Max-t[i]];}sort(a+1,a+m+1,cmp);for(inti=1;i<=m;i++)add(a[i].sd,query(a[i].sd-1)+1);printf("%lld\n",query(tot));return0;}