#include using namespace std; #define rep(i,n) for(int i = 0; i < (n);i++) #define sz(x) int(x.size()) typedef long long ll; typedef pair P; /* dp[i][j] = i番目までのEiでj個目まで選択する組合せ Eiをj個目として選択できるなら  dp[i + 1][j] += dp[i][j]  dp[i + 1][j + 1] += dp[i][j] Eiをj個目として選択できないなら  dp[i + 1][j] += dp[i][j] * 2 */ int main(){ int n; vector s(3); cin >> s[0] >> s[1] >> s[2] >> n; vector e(n); rep(i,n) cin >> e[i]; sort(s.begin(), s.end()); sort(e.begin(), e.end()); vector dp(4,0); dp[0] = 1; for (int i = 0; i < n; i++) { vector next(4,0); for (int j = 0; j <= 3; j++) { if (j < 3 && s[j] <= e[i]) { next[j+1] += dp[j]; next[j] += dp[j]; } else next[j] += 2 * dp[j]; } dp = next; } cout << dp[3] << endl; return 0; }