#PTA2025L302. Yes or No? or.

Yes or No? or.

题目背景

出题人 11:要不我们出个 Yes or No\texttt{Yes or No} 的题看看大家会不会骗分。

出题人 22or.\texttt{or.}

于是混沌邪恶的出题人 22 将原本的 “单次查询,询问是否存在” 改成了 “多次查询,询问方案数量”

快夸出题人让题目变得更有趣了。

题目描述

给定一个长度为 nn 的正整数序列 a1,a2,,ana_1, a_2, \dots, a_n

现有 qq 次独立询问。每次询问会给出一个目标值 kk,请你计算出在序列 aa 的所有 2n2^n子序列中,有多少个子序列的所有元素按位或的结果恰好等于 kk

由于符合条件的子序列数量可能非常大,请将每次询问的答案对 998244353 取模后输出。

输入格式

第一行包含两个正整数 nnqq1n,q1051\le n,q\le 10^5),分别表示序列的长度以及询问的次数。

第二行包含 nn 个非负整数 a1,a2,,ana_1, a_2, \dots, a_n0ai<2200\le a_i < 2^{20}),表示给定的序列。

接下来的 qq 行,每行包含一个非负整数 kk0ai<2200\le a_i < 2^{20}),表示单次询问的目标值。

输出格式

输出共 qq 行。对于每次询问,输出一行一个整数,表示按位或结果恰好等于 kk 的子序列数量对 998244353 取模后的值。

样例

4 3
1 2 3 4
3
7
4
5
5
1

数据范围

共有 3030 组测试点。

对于前 1010 组测试点,n,qn,q 不超过 2020

对于后 2020 组测试点,n,qn,q 不超过 10510^5