#include <bits/stdc++.h>
const long long mxn = 4 * 1e5 + 3;
const long long inf = 1e18 + 9;
using namespace std;
long long a[mxn], n, dp[2][501][501], cnt = 0, mod, b, m, ans = 0;
int main() {
  ios_base::sync_with_stdio(0), cout.tie(0);
  cin.tie(0);
  cin >> n >> m >> b >> mod;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  dp[0][0][0] = 1;
  for (int i = 1; i <= n; i++) {
    long long cur = i % 2;
    long long last = cur ^ 1;
    for (int j = 0; j <= m; j++) {
      for (int k = 0; k <= b; k++) {
        dp[cur][j][k] = dp[last][j][k];
        if (k >= a[i] && j > 0) {
          dp[cur][j][k] += dp[cur][j - 1][k - a[i]];
          dp[cur][j][k] %= mod;
        }
      }
    }
  }
  for (int i = 0; i <= b; i++) {
    ans += dp[n % 2][m][i];
    ans %= mod;
  }
  cout << ans;
  return 0;
}
