#include<bits/stdc++.h>
using namespace std;
int n,m;
long long a[300010],l[300010] = {0},mt,k;
bool b[300010] = {0};
int re[1000010] = {0},result[1000010] = {0};
int main(){
scanf("%d%d%lld",&n,&m,&k);
for(int i = 1;i <= m;++i){
int num;
scanf("%d",&num);
b[num] = 1;
}
for(int i = 1;i <= n;++i){
scanf("%lld",&a[i]);
l[i] = a[i] + l[i - 1];
if(b[i] && a[i])++re[l[i] % k];
}
int mt = re[0];
for(int i = n;i >= 1;--i){
if(b[i] && a[i]){
--re[l[i] % k];
}
int ti = re[0] + result[l[i] % k];
mt = max(mt,ti);
if(b[i] && a[i]){
++result[l[i] % k];
}
}
cout << mt;
return 0;
}