#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // #include using namespace std; using ll = long long; using P = pair; constexpr ll INF = 9e18; constexpr int inf = 1e9; const double INFD = 1e100; const ll mod = 1000000007; const double PI = 3.1415926535897932384626433832795028841971; const int dx[4] = {1, 0, -1, 0}; const int dy[4] = {0, 1, 0, -1}; template inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }; // intやllをstringに変換 template inline string toString(const T &a){ ostringstream oss; oss << a; return oss.str(); }; // ---------------------------------------------------------------------------- int main(){ ll N,M,K; cin >> N >> M >> K; char c; cin >> c; vector B(M); for(int i=0; i> B[i]; } sort(B.begin(),B.end()); vector A(N); for(int i=0; i> A[i]; } ll ans = 0; for(int i=0; i1){ ll mid = (ng+ok)/2; if(c == '+'){ if(B[mid]>=K-A[i]){ ok = mid; }else{ ng = mid; } }else{ if(B[mid]>=(K+A[i]-1)/A[i]){ ok = mid; }else{ ng = mid; } } } ans += M-ok; } cout << ans << endl; return 0; }