#include using namespace std; typedef long long ll; #define inf 10e17 #define rep(i,n) for(long long i=0; i()) #define debug(x) std::cerr << (x) << std::endl; #define roll(x) for (auto&& itr : x) { cerr << (itr) << " "; } template inline void chmax(T &ans, T t) { if (t > ans) ans = t;} template inline void chmin(T &ans, T t) { if (t < ans) ans = t;} inline bool cel(ll t, ll m) { return (t % m) != 0; } int main() { ll n, m, k; cin >> n >> m >> k; string op; cin >> op; vector b(m), a(n); map mp; rep(i, m) { cin >> b[i]; b[i] %= k; mp[b[i]] += 1; } rep(i, n) { cin >> a[i]; a[i] %= k; } ll ans = 0; for (auto itr : a) { if (itr == 0) { ans += b.size(); continue; } if (op == "+") { auto p = k - itr; if (p < 0) { p = p + k; } ans += mp[k - itr]; } else { ans += mp[0]; auto sd = k / itr; while (sd < k) { ans += mp[sd]; sd *= 2; } } } cout << ans << endl; }