#P7087. 对象存储调度问题

对象存储调度问题

Problem Description

题目背景:在华为云的对象存储调度过程中,我们会把数据对象存入分条中,而当数据对象较小时,我们会考虑聚合多个对象到一个分条中。如图所示:



题目描述:给定 $n$ 个大小 $A_1, A_2, \cdots, A_n$ 为 2 的整数次幂的数据对象,以及 $m$ 个剩余空间为 $B_1, B_2, \cdots, B_m$ 的分条。问是否可以通过对数据对象进行聚合,使得能用现有的 $m$ 个分条把所有 $n$ 个对象存下来。$T$ 组数据。

Input

第一行一个正整数 $T \, (1\le T \le 1000)$,表示数据组数。

对于每组数据:

第一行两个正整数 $n,m\,(1 \le n,m \le 10^5)$,分别表示数据对象的数量和分条的数量。

第二行 $n$ 个整数 $A_1, A_2, \cdots, A_n \, (1 \le A_i \le 10^9)$,表示数据对象的大小,保证 $A_i$ 为 2 的整数次幂。

第三行 $m$ 个整数 $B_1, B_2, \cdots, B_m \, (1 \le B_i \le 10^9)$,表示分条的剩余空间。

保证所有数据的 $\sum n, \sum m \le 5\times 10^5$。

Output

对于每组数据:

输出一行一个字符串 “Yes” 或者 “No”(均不含引号),分别表示分条能以及不能存下所有的数据对象。

2 4 2 2 2 4 8 4 12 4 2 2 2 4 8 3 13
Yes No

Hint


对于第一组样例,可以把大小为 4 的数据对象放进剩余空间为 4 的分条,其余对象放入剩余空间为 12 的分条。