#include #define rep(i,n) for(int i = 0; i < (n); i++) using namespace std; typedef long long ll; int main(){ cin.tie(0); ios::sync_with_stdio(0); ll N,M,K; cin >> N >> M >> K; char op; cin >> op; vector A(N), B(M); rep(i,M) cin >> B[i]; rep(i,N) cin >> A[i]; ll ans = 0; if(op == '+') { map mpB; rep(i,M) mpB[B[i] % K]++; rep(i,N) ans += mpB[(K - A[i] % K) % K]; } else { map mpA, mpB; rep(i,N) mpA[gcd(A[i], K)]++; rep(i,M) mpB[gcd(B[i], K)]++; for(auto [a, ca] : mpA) for(auto [b, cb] : mpB) { if((a * b) % K == 0) { ans += ca * cb; } } } cout << ans << endl; }