#include <bits/stdc++.h>
using namespace std;
const int P = 998244353, N = 100;
int n, m, g[N], k, C[N][N], w[N][N], ans[N], cnt;
long long a[N], b[N], c[N], x;
int ksm(int a, int b) {
  int ans = 1;
  for (; b; b >>= 1, a = 1ll * a * a % P)
    if (b & 1) ans = 1ll * ans * a % P;
  return ans;
}
void insert(long long x) {
  for (int i = (m - 1); i >= (0); --i)
    if (x & (1ll << i)) {
      if (!a[i]) {
        a[i] = x;
        ++cnt;
        return;
      }
      x ^= a[i];
    }
}
void dfs(int x, long long z) {
  if (x > k) {
    g[__builtin_popcountll(z)]++;
    if (__builtin_popcountll(z) == 5) cerr << z << endl;
    return;
  }
  dfs(x + 1, z ^ b[x]);
  dfs(x + 1, z);
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = (1); i <= (n); ++i) scanf("%lld", &x), insert(x);
  if (cnt <= m / 2) {
    for (int i = (0); i <= (m - 1); ++i)
      if (a[i]) b[++k] = a[i];
    dfs(1, 0);
    for (int i = (0); i <= (m); ++i)
      printf("%lld ", 1ll * ksm(2, n - k) * g[i] % P);
  } else {
    for (int i = (0); i <= (m - 1); ++i)
      for (int j = (i + 1); j <= (m - 1); ++j)
        if (a[j] & (1ll << i)) a[j] ^= a[i];
    for (int i = (0); i <= (m - 1); ++i)
      for (int j = (0); j <= (m - 1); ++j)
        if (a[j] & (1ll << i)) c[i] |= 1ll << j;
    for (int i = (0); i <= (m - 1); ++i)
      if (!(c[i] & (1ll << i))) b[++k] = c[i] ^ (1ll << i);
    dfs(1, 0);
    for (int i = (0); i <= (m); ++i) {
      C[i][0] = 1;
      for (int j = (1); j <= (i); ++j)
        C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % P;
    }
    for (int i = (0); i <= (m); ++i)
      for (int j = (0); j <= (m); ++j)
        for (int k = (0); k <= (i); ++k)
          k & 1 ? ((w[i][j] += P - 1ll * C[j][k] * C[m - j][i - k] % P) >= P) &&
                      (w[i][j] -= P)
                : ((w[i][j] += 1ll * C[j][k] * C[m - j][i - k] % P) >= P) &&
                      (w[i][j] -= P);
    for (int i = (0); i <= (m); ++i)
      for (int j = (0); j <= (m); ++j)
        ((ans[i] += 1ll * g[j] * w[i][j] % P) >= P) && (ans[i] -= P);
    long long t = ksm(2, P - 1 + n - m);
    for (int i = (0); i <= (m); ++i) printf("%lld ", 1ll * t * ans[i] % P);
  }
  return 0;
}
