def gcd(x,y): while x%y: x,y=y,x%y return y n,m,k=map(int,input().split()) c=list(input().split()) a=list(map(int,c[1:])) b=[int(input())%k for i in range(n)] c=c[0] if c=="+": v={};ans=0 for i in a: c=(k-i)%k if c not in v: v[c]=1 else: v[c]+=1 for i in b: if i in v: ans+=v[i] else: v={} s=set() for i in range(1,int(k**0.5)+1): if k%i==0: s.add(i);s.add(k//i) s=list(s);ans=0 for i in s: v[i]=0 for i in a: for j in s: if i%j==0: v[j]+=1 for i in b: c=gcd(i,k) ans+=v[k//c] print(ans)