#include<bits/stdc++.h>
using namespace std;
const int N=3e5;
int a[N],t[N],sum[N],o[N];
bool b[N];
int n,m,k,num,cnt,ans;
int main()
{
memset(b,0,sizeof(b));
memset(o,0,sizeof(o));
memset(t,0,sizeof(t));
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=m;++i)
{
int x;
scanf("%d",&x);
b[x]=true;
}
for(int i=1;i<=n;++i)
scanf("%d",&a[i]);
cnt=0;
for(int i=1;i<=n;++i)
{
cnt+=a[i];
cnt%=k;
if(!cnt&&a[i]&&b[i]) o[i]=o[i-1]+1;
else o[i]=o[i-1];
sum[i]=cnt;
if(b[i]&&a[i]) t[cnt]++;
}
ans=o[n];
for(int i=1;i<=n;++i)
{
if(b[i]&&a[i]) t[sum[i]]--;
ans=max(ans,o[i-1]+t[a[i]%k]);
}
printf("%d",ans);
return 0;
}