题目描述
You are given an array $a$ of length $n$, consisting of positive integers, and an array $x$ of length $q$, also consisting of positive integers.
There are $q$ modification. On the $i$-th modification ($1 \leq i \leq q$), for each $j$ ($1 \leq j \leq n$), such that $a_j$ is divisible by $2^{x_i}$, you add $2^{x_i-1}$ to $a_j$. Note that $x_i$ ($1 \leq x_i \leq 30$) is a positive integer not exceeding 30.
After all modification queries, you need to output the final array.
Input
The first line contains a single integer $t$ ($1 \leq t \leq 10^4$) — the number of test cases. The description of the test cases follows.
The first line of each test case contains two integers $n$ and $q$ ($1 \leq n, q \leq 10^5$) —the length of the array $a$ and the number of queries respectively.
The second line of each test case contains $n$ integers $a_1, a_2, a_3, \ldots, a_n$ — the elements of the array $a$ ($1 \leq a_i \leq 10^9$).
The third line of each test case contains $q$ integers $x_1, x_2, x_3, \ldots, x_q$ — the elements of the array $x$ ($1 \leq x_i \leq 30$), which are the modification queries.
It is guaranteed that the sum of $n$ and the sum of $q$ across all test cases does not exceed $2 \cdot 10^5$.
Output
For each test case, output the array after all of the modification queries.
输入格式
见题面 Input 部分
输出格式
见题面 Output 部分
样例输入
样例输出
提示
In the first test case, the first query will add $2$ to the integers in positions $4$ and $5$. After this addition, the array would be $[1, 2, 3, 6, 6]$. Other operations will not modify the array.
In the second test case, the first modification query does not change the array. The second modification query will add $8$ to the integer in position $5$, so that the array would look like this: $[7, 8, 12, 36, 56, 6, 3]$. The third modification query will add $2$ to the integers in positions $2, 3$, $4$ and $5$. The array would then look like this: $[7, 10, 14, 38, 58, 6, 3]$.