#include <bits/stdc++.h>
using namespace std;
int dp[600][600];
int main() {
  int n, m, b, mod;
  int i, j, k;
  int bug;
  while (~scanf("%d%d%d%d", &n, &m, &b, &mod)) {
    memset(dp, 0, sizeof(dp));
    for (i = 1; i <= n; i++) {
      scanf("%d", &bug);
      if (bug <= b) {
        dp[1][bug]++;
        for (j = 2; j <= m; j++)
          for (k = bug; k <= b; k++) {
            dp[j][k] += dp[j - 1][k - bug];
            dp[j][k] %= mod;
          }
      }
    }
    int tot = 0;
    for (i = 0; i <= b; i++) {
      tot += dp[m][i];
      tot %= mod;
    }
    cout << tot << endl;
  }
}
