#include using namespace std; const int N = 405, MOD = 167772161; int n, s, a[N], dp1[N][N][N], dp2[N][N][N]; main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> s; for (int i = 1; i <= n; i++) cin >> a[i]; dp1[0][0][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 0; j <= s; j++) { for (int k = 0; k <= n; k++) { dp1[i][j][k] = (dp1[i - 1][j][k] + (j - a[i] >= 0 && k - 1 >= 0 ? dp1[i - 1][j - a[i]][k - 1] : 0)) % MOD; } } } dp2[n + 1][0][0] = 1; for (int i = n; i >= 1; i--) { for (int j = 0; j <= s; j++) { for (int k = 0; k <= n; k++) { dp2[i][j][k] = (dp2[i + 1][j][k] + (j - a[i] >= 0 && k - 1 >= 0 ? dp2[i + 1][j - a[i]][k - 1] : 0)) % MOD; } } } for (int i = 1; i <= n; i++) { for (int k = 1; k < n; k++) { int ans = 0; for (int a = 0; a <= s; a++) { for (int b = 0; b <= k; b++) { for (int c = 0; a + c <= s; c++) { int d = k - b; if (a + c + ::a[i] > s) { ans = (ans + dp1[i - 1][a][b] * 1LL * dp2[i + 1][c][d]) % MOD; } } } } cout << ans << " "; } cout << "\n"; } }