#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { int B, C, D; cin >> B >> C >> D; vector S = {B, C, D}; sort(S.begin(), S.end()); int N; cin >> N; vector E(N); for (int i = 0; i < N; ++i) { cin >> E[i]; } sort(E.begin(), E.end()); ll dp[N + 1][4]; memset(dp, 0, sizeof(dp)); dp[0][0] = 1; for (int i = 0; i < N; ++i) { int cnt = 0; for (int j = 0; j < 3; ++j) { if (S[j] <= E[i]) ++cnt; } for (int j = 0; j < 4; ++j) { if (j < cnt) { dp[i + 1][j + 1] += dp[i][j]; dp[i + 1][j] += dp[i][j]; } else { dp[i + 1][j] += 2 * dp[i][j]; } } } cout << dp[N][3] << endl; return 0; }