#pragma GCC target("avx") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include #include using namespace std; using i32 = int_fast32_t; using i64 = int_fast64_t; #define rep(i, n) for (i32 i = 0; i < (i32)(n); i++) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() using P = pair; i64 binary_search(i64 a,i64 k,i64 m,vector &b){ i64 lb = -1; i64 ub = m; i64 mid; while(ub - lb > 1){ mid = (ub + lb) / 2; if(b[mid] * a >= k)ub = mid; else lb = mid; } return ub; } int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); i64 n,m,k; cin >> n >> m >> k; char op; cin >> op; vector b(m),a(n); rep(i,m) cin >> b[i]; rep(i,n) cin >> a[i]; sort(all(a)); sort(all(b)); i64 ans = 0; rep(i,n){ if(op == '*'){ ans += (m - binary_search(a[i],k,m,b)); }else{ auto itr = lower_bound(all(b),k - a[i]); ans += (b.end() - itr); } } cout << ans << endl; }