#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MOD = 998244353;
long long power(long long base, long long exp) {
long long res = 1;
base %= MOD;
while (exp > 0) {
if (exp % 2 == 1) res = res * base % MOD;
base = base * base % MOD;
exp /= 2;
}
return res;
}
long long modInverse(long long n) {
return power(n, MOD - 2);
}
const int MAXN = 105;
long long fact[MAXN], invFact[MAXN];
void precompute() {
fact[0] = 1;
invFact[0] = 1;
for (int i = 1; i < MAXN; i++) {
fact[i] = fact[i - 1] * i % MOD;
invFact[i] = modInverse(fact[i]);
}
}
void solve() {
int n;
long long c;
if (!(cin >> n >> c)) return;
vector<long long> a(n + 1);
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
sort(a.begin() + 1, a.end());
vector<long long> w(n + 1);
for (int i = 1; i < n; i++) {
w[i] = (a[i + 1] - a[i]) % MOD;
}
w[n] = (c + 1 - a[n]) % MOD;
w[0] = (a[1] - 1) % MOD;
vector<vector<long long>> dp(n + 1, vector<long long>(n + 1, 0));
dp[0][0] = 1;
for (int i = n; i >= 1; i--) {
vector<vector<long long>> next_dp(n + 1, vector<long long>(n + 1, 0));
long long current_w = w[i];
vector<long long> w_pow(n + 1);
w_pow[0] = 1;
for (int p = 1; p <= n; p++) {
w_pow[p] = w_pow[p - 1] * current_w % MOD;
}
for (int j = 0; j <= n; j++) {
for (int k = 0; k <= j; k++) {
if (dp[j][k] == 0) continue;
for (int m = 0; m <= n - j; m++) {
int n_j = j + m;
int n_k = k + m;
if (n_k > 0) n_k--;
long long term = dp[j][k] * w_pow[m] % MOD * invFact[m] % MOD;
next_dp[n_j][n_k] = (next_dp[n_j][n_k] + term) % MOD;
}
}
}
dp = next_dp;
}
vector<long long> ans(n + 1, 0);
long long w0 = w[0];
vector<long long> w0_pow(n + 1);
w0_pow[0] = 1;
for (int p = 1; p <= n; p++) {
w0_pow[p] = w0_pow[p - 1] * w0 % MOD;
}
for (int j = 0; j <= n; j++) {
for (int k = 0; k <= j; k++) {
if (dp[j][k] == 0) continue;
int matches = j - k;
int rem = n - j;
long long term = dp[j][k] * w0_pow[rem] % MOD * invFact[rem] % MOD;
ans[matches] = (ans[matches] + term) % MOD;
}
}
long long prob_mult = fact[n] * modInverse(power(c, n)) % MOD;
for (int i = 0; i <= n; i++) {
long long final_ans = ans[i] * prob_mult % MOD;
cout << final_ans << (i == n ? "" : " ");
}
cout << "\n";
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
precompute();
int t;
if (cin >> t) {
while (t--) {
solve();
}
}
return 0;
}