#include #include #include #include #include #include using namespace std; const int NMAX = 100; const int AMAX = 100000; int a[NMAX]; int dp[NMAX + 1][AMAX + 1]; int N, M, C; int main() { cin >> N >> M >> C; for (int i = 0; i < N; ++i) cin >> a[i]; for (int i = 0; i < N; ++i) for (int j = 0; j <= AMAX; ++j) dp[i][j] = 0; dp[0][0] = 1; for (int i = 0; i < N; ++i) { for (int j = N - 1; j >= 0; --j) { for (int k = AMAX - a[i]; k >= 0; --k) { dp[j + 1][k + a[i]] += dp[j][k]; dp[j + 1][k + a[i]] %= M; } } } int max = 0; for (int i : a) max += i; long long ans = 0; for (int s = 1; s <= max; ++s) cout << dp[C][s] << (s == max ? "\n" : " "); }