N, M, K = gets.split.map(&:to_i) op, *B = gets.split B.map!(&:to_i) A = [] * N N.times do A << gets.chomp.to_i end z = 0 if op == '+' d = Hash.new(0) B.each do |b| d[b % K] += 1 end A.each do |a| if d[a] z += d[-a % K] end end else da={} db={} B.map{|b| g=b.gcd K if db[g] db[g]+=1 else db[g]=1 end } A.map{|a| g=a.gcd K if da[g] da[g]+=1 else da[g]=1 end } da.map{|ka,va| db.map{|kb,vb| if ka*kb%K==0 z+=va*vb end } } end p z