20 30
1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 2 1 3 1 4 1 5 1 1 2 3 1 1 3 3 2 2 1 2
 20 30
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
765 451 7275 385 1686 78 554 114 1980 394 776 232 627 760 782 7 486 32 1100 1516
 20 30
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
126679203 179924771 16639504 67055540 14134870 36407782 15024189 39367944 121531542 5400023 5834434 8539193 3686913 11287136 36370086 71808281 138206490 59846864 19052959 21446598
 20 30
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0
1 1 3 2 3 1 2 2 3 2 2 2 2 2 2 3 3 1 1 2
 20 30
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
3 4 1 2 1 1 1 2 5 2 1 2 3 1 1 2 3 2 1 2
 20 30
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803 5766803
 20 30
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
128 574 205 490 611 1294 283 1690 1466 1896 272 19 1020 5032 357 1500 36 1749 1202 176
 20 30
0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0
244 1901 938 1350 1010 763 318 2158 1645 534 1356 563 295 1449 2306 224 1302 195 639 810
 20 30
1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
779 1317 1275 234 857 1531 785 265 679 767 1994 11 918 1146 1807 71 813 245 3926 580
 20 30
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
34095514 37349809 60555988 40280455 19504485 77297461 41415742 66290058 20631093 185280391 7151718 64927972 15611855 4317891 24600598 24588269 60808977 9108470 13217752 191209824
 5 5
0 1 0 0 1
2 4 1 2 1
 100 3000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10 8 1 9 7 5 12 9 15 7 16 5 17 5 17 21 11 3 4 4 30 17 3 84 12 30 2 8 2 2 22 24 15 11 15 13 7 17 1 12 8 4 3 6 5 15 1 3 4 2 27 3 11 11 3 3 3 5 14 2 5 13 6 2 6 5 6 19 3 16 4 12 11 2 2 3 25 14 6 11 22 4 10 32 9 19 14 2 2 3 4 3 2 5 18 14 2 7 3 8
 20 30
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661 26210661
 20 30
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0
9380933 34450681 12329733 7732927 73910078 16165679 149467043 56914401 21809098 36934833 71019254 168559440 12033996 40465391 7156881 3312348 37150678 130625432 42709585 66115911
 20 30
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
61 849 320 1007 624 441 1332 3939 1176 718 419 634 657 914 858 882 1019 1567 62 2521
 20 30
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
144831196 28660251 62050800 52660762 23189000 12771861 73096012 25119113 119648684 16011144 51600638 74708999 6312006 26945863 68746869 58112898 5070 19157938 74351320 60263898
 20 30
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 3 2 1 3 2 1 1 2 1 1 2 2 4 2 1 5 2 3
 10 3000
1 1 1 1 1 0 0 0 1 1
6 22 5 2 4 15 4 7 31 4
 20 30
0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1
1 2 2 2 2 2 1 1 2 1 4 1 2 5 3 4 1 1 2 1
 20 30
0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 0 1
66166717 200301718 6725634 95379617 42880832 48874211 64912554 36809296 13248978 58406666 53142218 45080678 19902257 58554006 23570140 14484661 7589423 78746789 11072716 52395211
 20 20
0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0
109 1 24 122 136 42 25 112 110 15 26 48 35 10 86 13 41 6 24 15

902255482
806266611
902255482
710277740
902255482
537377994
902255482
518299998
902255482
902255482
806266611
710277740
902255482
902255482
710277740
710277740
806266611
806266611
902255482
806266611
 491636110
498623506
486651408
182179980
6989399
10980766
871467875
92836839
509106603
951327263
211628580
83852758
11480438
618912260
58897200
820057743
605934809
183676993
948333237
341401087
 615913610
488825486
773371096
742795989
193664548
323188752
32686082
709701410
293733249
161181348
193396792
354491196
708550409
644392716
323187536
646345011
487479735
1930544
322628919
966734748
 550803098
550803098
654164941
103361843
654164941
550803098
103361843
103361843
654164941
103361843
103361843
103361843
103361843
103361843
276551708
654164941
654164941
138275854
550803098
103361843
 441078046
920852179
479774133
959548266
479774133
479774133
479774133
959548266
402381959
263018694
479774133
959548266
441078046
479774133
479774133
959548266
441078046
959548266
479774133
959548266
 504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
504888981
 389864218
157345415
537589523
962131647
753565149
104281847
378440811
873692367
690552162
658861420
578900375
198248582
923070965
228091231
572635926
887695253
795942304
70748620
510359933
785624388
 300071414
595185476
40756239
113904636
440148868
947268885
456535325
542868956
183161324
427608407
61171180
375813928
43680359
55509680
30410255
360521133
535772284
722568686
663107799
390646234
 552990868
90431251
712871250
952916426
537881559
151361542
321464532
89445141
86037605
17799187
586392419
241031286
40642277
699465709
481837969
920500985
572000768
195703359
903238702
911489090
 313283482
21804622
682197550
361027027
756362680
151917509
716108102
131732975
237068086
731869119
190595295
847684643
847454143
501579235
129856516
246699402
205385635
639100445
614421017
227076269
 665717847
333191345
831981100
665717847
831981101
 23677346
418239618
800963217
220958482
615520754
11838673
627359427
220958482
35516019
615520754
836479236
11838673
639198100
11838673
639198100
848317909
824640563
406400945
209119809
209119809
71032038
639198100
406400945
398538577
627359427
71032038
603682081
418239618
19778681
603682081
651036773
256474501
35516019
824640563
35516019
430078291
615520754
639198100
800963217
627359427
418239618
209119809
406400945
812801890
11838673
35516019
800963217
406400945
209119809
603682081
662875446
406400945
824640563
824640563
406400945
406400945
406400945
11838673
232797155
603682081
11838673
430078291
812801890
603682081
812801890
11838673
812801890
244635828
406400945
836479236
209119809
118672086
824640563
603682081
603682081
406400945
59193365
232797155
812801890
824640563
651036773
209119809
23677346
674714119
220958482
244635828
232797155
603682081
603682081
406400945
209119809
406400945
603682081
11838673
441916964
232797155
603682081
615520754
406400945
418239618
 76898501
989279651
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
76898501
 813231583
458087744
445793615
651101155
484645642
506668954
896602699
556862659
145127201
302005399
558418033
213871822
57299634
564466143
767349204
290138481
12657688
925337836
827843024
119362169
 514012356
393871659
166092575
569465276
74319433
306884170
254628439
656312237
485609669
216694535
825782618
110704962
294216114
131255421
733108087
613768340
14181299
610566194
624888021
887363731
 132556548
711988928
6999755
208709864
320161276
865416376
320896979
458941660
671806481
158009043
351362956
78248147
927871852
882014191
988190329
830735503
1958329
787106839
942059547
341315444
 249561090
249561090
748683270
499122180
249561090
748683270
499122180
249561090
249561090
499122180
249561090
249561090
499122180
499122180
7
499122180
249561090
249561097
499122180
748683270
 561258918
61460660
467715765
187086306
374172612
538110090
143496024
251118042
903349037
374172612
 297511613
595023226
756311680
756311680
756311680
595023226
297511613
378155840
595023226
297511613
514379007
297511613
595023226
892534847
136223167
514379007
378155840
297511613
595023226
378155840
 823107880
742699237
987770596
549924308
730188349
913535291
936423447
122869154
581668441
749452306
615454312
176148736
874336841
897418997
235568492
24727530
143875067
15270097
200154604
356406452
 217595927
149660176
322657182
290143118
388896876
296261274
86540143
507489163
979723241
248413934
896431517
195977977
246884395
633562669
891842900
947337935
146601098
897961056
597111165
451221827

#include <bits/stdc++.h>
using namespace std;
void READ(vector<long long> &v, long long n) {
  long long a;
  for (long long i = 0; i < n; i = i + 1) {
    cin >> a;
    v.push_back(a);
  }
}
void PRINT(vector<long long> &v) {
  long long a;
  for (long long i = 0; i < v.size(); i = i + 1) {
    cout << v[i] << " ";
  }
  cout << "\n";
}
long long power(long long k, long long n, long long m = 998244353) {
  long long res = 1;
  while (n > 0) {
    if (n & 1) {
      res = (res * k) % m;
    }
    k = (k * k) % m;
    n >>= 1;
  }
  return (res);
}
long long n, m, k;
long long good, bad;
long long dp[3003][3003];
long long solve(long long i, long long j) {
  if (i == 0 && j == 0) {
    return (1);
  }
  if (i < 0 || j < 0 || j > bad) {
    return (0);
  }
  if (dp[i][j] != -1) {
    return (dp[i][j]);
  }
  dp[i][j] = ((solve(i - 1, j) % 998244353 * (good + i - 1) % 998244353 *
               power(good + bad + i - 1 - j, 998244353 - 2) % 998244353) %
                  998244353 +
              (solve(i, j - 1) % 998244353 * (bad - j + 1) % 998244353 *
               power(good + bad + i - j + 1, 998244353 - 2) % 998244353)) %
             998244353;
  return (dp[i][j]);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  std::cout.unsetf(std::ios::floatfield);
  std::cout.precision(6);
  long long a, b, c, d, e, x, i, j, t, y, w;
  double p, q, r, u;
  char ch, chr;
  cin >> n >> m;
  long long v[n];
  memset(dp, -1, sizeof(dp));
  for (i = 0; i < n; i = i + 1) {
    cin >> a;
    v[i] = a;
  }
  good = bad = 0;
  long long v1[n];
  x = 0;
  y = 0;
  for (i = 0; i < n; i = i + 1) {
    cin >> a;
    if (v[i]) {
      good += a;
    } else {
      bad += a;
    }
    v1[i] = a;
  }
  x = y = 0;
  for (i = 0; i <= m; i = i + 1) {
    x = (x % 998244353 +
         (solve(i, m - i) % 998244353 * i % 998244353) % 998244353) %
        998244353;
    y = (y % 998244353 + 998244353 -
         (solve(i, m - i) % 998244353 * (m - i) % 998244353) % 998244353) %
        998244353;
  }
  a = power(good, 998244353 - 2);
  b = power(bad, 998244353 - 2);
  for (i = 0; i < n; i = i + 1) {
    if (v[i]) {
      cout << (v1[i] + x % 998244353 * v1[i] % 998244353 * a % 998244353) %
                  998244353
           << "\n";
    } else {
      cout << (v1[i] + (y % 998244353 * v1[i] % 998244353 * b % 998244353) %
                           998244353) %
                  998244353
           << "\n";
    }
  }
}
