You are given an array a of length n. Each element of the array is a non-negative integer less than 2k. You have to partition it into two non-empty sub-sequences X and Y such that each element belongs to exactly one of X or Y. The score of such a partitioning is given by (x1∧x2⋯∧x∣X∣)∨(y1∧y2⋯∧y∣Y∣). Here, ∧ denotes the bitwise AND operation and ∨ denotes the bitwise OR operation.
For each x between 0 and 2k−1, find the number of ways to partition the array such that the score is x. Since this number can be large, you only need to find it modulo 998244353.
Two ways of partitioning are considered different if and only if there exists a pair of indices i,j such that they are in the same part in one way, but in different parts in the other.
Input
The first line contains two space separated integers, n and k.
The second line contains n space-separated integers a1,a2,⋯,an.
Constraints
2≤n≤3×105
1≤k≤18
0≤ai<2k
Output
Output 2kspace separated integers f0,f1,⋯,f2k−1. where, fx is the number of ways, modulo 998244353, to partition such that the score is x.