#include<iostream>
using namespace std;
#define int long long
const int M = 998244353;
const int K = 305;
const int N = 2 * 1e5 + 5;
int C[K][K];
int a;
int S[K];
int n, k;
int qpow(int a, int b){
int res = 1;
while(b){
if(b & 1) (res *= a) %= M;
(a *= a) %= M;
b >>= 1;
}
return res;
}
void init(){
for(int i = 0;i <= k;i ++){
C[i][0] = 1;
for(int j = 1;j <= i;j ++){
C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % M;
}
}
}
signed main(){
cin >> n >> k;
for(int i = 1;i <= n;i ++){
cin >> a;
int cnt = 1;
for(int x = 0;x <= k;x ++){
S[x] = (S[x] + cnt) % M;
cnt = (cnt * a) % M;
}
}
init();
for(int x = 1;x <= k;x ++){
int ans = 0;
for(int i = 0;i <= x;i ++){
ans = (ans + (C[x][i] * S[i]) % M * S[x - i] % M) % M;
}
ans = (ans + M - qpow(2, x) * S[x] % M) % M;
cout << ans * qpow(2, M - 2) % M << '\n';
}
return 0;
}