K. Match
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Given two sequences $$$a$$$ and $$$b$$$ of length $$$n$$$, a bipartite graph is generated in the following manner:

The nodes of the bipartite graph are divided into two parts: the left side and the right side. There are $$$n$$$ nodes on both sides. An edge exists between the i-th node on the left side and the j-th node on the right side if and only if $$$a_i \oplus b_j \geq k$$$, where $$$\oplus$$$ denotes the bitwise XOR operator.

For each $$$x$$$ in the range $$$[1,n]$$$, output the number of matchings of size $$$x$$$ in the bipartite graph, with the result modulo $$$998244353$$$.

Input

The first line contains two non-negative integers $$$ n ,k $$$,$$$(1 \leq n \leq 200,0 \leq k \lt 2^{60})$$$.

The second line contains $$$n $$$ non-negative integers, representing the sequence $$$a$$$,$$$(0 \leq a_i \lt 2^{60})$$$.

The third line contains $$$n $$$ non-negative integers, representing the sequence $$$b$$$,$$$(0 \leq b_i \lt 2^{60})$$$.

Output

Output $$$n$$$ non-negative integers, where the i-th integer represents the number of matchings of size $$$i$$$ in the graph, with the result taken modulo $$$998244353$$$.

Example
Input
9 5
1 7 2 8 4 9 2 5 10
1 3 2 4 5 8 8 8 9
Output
51
1034
10768
62195
200965
348924
294444
97344
7200