#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
int main() {
  int n, m, b, mod;
  cin >> n >> m >> b >> mod;
  vector<int> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  vector<vector<vector<int> > > dp(
      2, vector<vector<int> >(n, vector<int>(b + 1, 0)));
  for (int i = 0; i < n; i++)
    for (int k = 0; k < b + 1; k++) dp[0][i][k] = 1;
  for (int j = 1; j <= m; j++) {
    for (int i = 0; i < n; i++) {
      for (int k = 0; k <= b; k++) {
        dp[j & 1][i][k] = 0;
        if (k - a[i] >= 0) {
          dp[j & 1][i][k] += dp[!(j & 1)][i][k - a[i]];
        }
        if (i - 1 >= 0) {
          dp[j & 1][i][k] += dp[j & 1][i - 1][k];
        }
        dp[j & 1][i][k] = dp[j & 1][i][k] % mod;
      }
    }
  }
  cout << dp[m & 1][n - 1][b] % mod << endl;
  return 0;
}
