#include <bits/stdc++.h>
using namespace std;
int inp[510];
int dp[2][510][510];
int n, m, b, mod;
void lemon() {
  scanf("%d%d%d%d", &n, &m, &b, &mod);
  for (int i = (0); i <= (n - 1); i++) scanf("%d", &inp[i]);
  dp[0][0][0] = 1;
  for (int i = (0); i <= (n - 1); i++) {
    int ci = i % 2;
    int ri = 1 - ci;
    memset(dp[ri], 0, sizeof(dp[ri]));
    for (int j = (0); j <= (m); j++) {
      for (int k = (0); k <= (b); k++) {
        dp[ri][j][k] += dp[ci][j][k];
        dp[ri][j][k] %= mod;
        if (k + inp[i] <= b) {
          dp[ci][j + 1][k + inp[i]] += dp[ci][j][k];
          dp[ci][j + 1][k + inp[i]] %= mod;
        }
      }
    }
  }
  int ans = 0;
  int ci = n % 2;
  for (int k = (0); k <= (b); k++) ans = (ans + dp[ci][m][k]) % mod;
  printf("%d\n", ans % mod);
}
int main() {
  ios::sync_with_stdio(true);
  lemon();
  return 0;
}
