import sys import math def get_divisors(k): divisors = set() for i in range(1, int(math.isqrt(k)) + 1): if k % i == 0: divisors.add(i) divisors.add(k // i) return sorted(divisors) def main(): input = sys.stdin.read().split() ptr = 0 N, M, K = map(int, input[ptr:ptr+3]) ptr += 3 op = input[ptr] ptr += 1 B = list(map(int, input[ptr:ptr+M])) ptr += M A = [int(input[ptr + i]) for i in range(N)] ptr += N if op == '+': rem_count = {} for b in B: rem = b % K rem_count[rem] = rem_count.get(rem, 0) + 1 total = 0 for a in A: required_rem = (-a) % K total += rem_count.get(required_rem, 0) print(total) else: divisors = get_divisors(K) divisors_set = set(divisors) count = {d: 0 for d in divisors} for b in B: d = math.gcd(b, K) count[d] += 1 total = 0 for a in A: d_i = math.gcd(a, K) x_i = K // d_i cnt = 0 for d in divisors: if d % x_i == 0: cnt += count[d] total += cnt print(total) if __name__ == '__main__': main()