#include <bits/stdc++.h>
using namespace std;
const int maxn = 102, mod = 998244353;
long long dp[maxn][maxn][maxn], inv[3001];
void add(long long &x, long long y) { x = (x + y) % mod; }
long long ksm(long long x, int y) {
  long long res = 1;
  while (y) {
    if (y & 1) res = res * x % mod;
    x = x * x % mod;
    y /= 2;
  }
  return res;
}
int a[maxn], w[maxn], g[3001][3001], t1, t2;
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= n; i++) {
    cin >> w[i];
    if (a[i])
      t1 += w[i];
    else
      t2 += w[i];
  }
  for (int i = 1; i <= 2550; i++) inv[i] = ksm(i, mod - 2);
  for (int i = 0; i <= 2550; i++)
    for (int j = 1; j <= 2550; j++) {
      int d = 1;
      g[i][j] = 1ll * (i / d) * inv[j / d] % mod;
    }
  for (int i = 1; i <= n; i++) {
    long long ans = 0;
    memset(dp, 0, sizeof(dp));
    dp[0][0][0] = 1;
    for (int M = 0; M <= m; M++) {
      for (int j = 0; j <= M; j++) {
        int k = M - j;
        if (a[i])
          for (int p = 0; p <= j; p++) {
            int res = w[i] + p;
            int sum = t1 + t2 + j - k;
            if (M == m) {
              add(ans, dp[p][j][k] * res % mod);
              continue;
            }
            add(dp[p + 1][j + 1][k], dp[p][j][k] * g[res][sum] % mod);
            if (t1 + j - res >= 0)
              add(dp[p][j + 1][k], dp[p][j][k] * g[t1 + j - res][sum] % mod);
            if (t2 - k >= 0)
              add(dp[p][j][k + 1], dp[p][j][k] * g[t2 - k][sum] % mod);
          }
        else
          for (int p = 0; p <= k; p++) {
            int res = w[i] - p;
            if (res <= 0) continue;
            int sum = t1 + t2 + j - k;
            if (M == m) {
              add(ans, dp[p][j][k] * res % mod);
              continue;
            }
            add(dp[p + 1][j][k + 1], dp[p][j][k] * g[res][sum] % mod);
            add(dp[p][j + 1][k], dp[p][j][k] * g[t1 + j][sum] % mod);
            if (t2 - k - res > 0)
              add(dp[p][j][k + 1], dp[p][j][k] * g[t2 - k - res][sum] % mod);
          }
      }
    }
    cout << ans << endl;
  }
}
