智乃的“凑数”题(Easy Version)
题号:NC288979
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}本题为问题的简单版本,两题的唯一区别在于全部变量的数据范围,保证Easy的测试用例集为Hard的子集。

\hspace{15pt}一天,智乃打开了她的电子表格,开始研究这样一个“凑数”问题。

\hspace{15pt}现在有 n 个整数 k_1,k_2,\dots,k_n,对于每个数字,智乃会从以下三种操作中选择一种执行:
\hspace{23pt}\bullet\,将这个数字添加到电子表格的行头中,记作 a_i
\hspace{23pt}\bullet\,将这个数字添加到电子表格的列头中,记作 b_j
\hspace{23pt}\bullet\,放弃这个数字。
\hspace{15pt}在全部 n 个整数均执行完成操作后,对于整个二维表格的权值,记作 {\rm val}=\sum\limits_{i=1}^{r}\sum\limits_{j=1}^{c}a_i\times b_j。例如,在上图样例中行头为 a=\{2,4,6\},列头为 b=\{1,3,5\},则 {\rm val}=2+4+6+6+12+18+10+20+30=108
\hspace{15pt}特别的,如果在进行若干次操作后行或者列仍然为空,则规定此时 {\rm val}=0

\hspace{15pt}智乃现在想知道,对于一开始的这 n 个数,是否存在一种操作方案,使得表格权值恰好为 x?如果存在,输出任意一种满足条件的操作方案,详细的输出格式见输出描述;否则告诉她不可能。
\hspace{15pt}你需要处理 m 次询问,每次询问彼此独立,即都是从一开始的状态重新选择操作。

输入描述:

\hspace{15pt}第一行输入两个正整数 n,m \left(1\leq n \leq 100;\ 1\leq m \leq 100\right) 代表数字的个数、查询的数目。 
\hspace{15pt}第二行输入 n 个正整数 k_1,k_2,\dots,k_n\left(1\leq k_i \leq 100\right) 代表数字。
\hspace{15pt}此后 m 行,第 i 行输入一个正整数 x_i\left(1\leq x_i \leq 100\right) 代表第 i 次询问的表格权值。

输出描述:

\hspace{15pt}对于每一次询问,如果不存在满足条件的操作方案,直接输出 \rm No

\hspace{15pt}否则,请参考下方的格式输出。
\hspace{15pt}第一行输出 \rm Yes
\hspace{15pt}第二行输出两个正整数 l_a, l_b \left(1 \leq l_a, l_b \leq n;\ l_a+l_b \leq n\right) 代表行头的长度、列头的长度。
\hspace{15pt}第三行输出 l_a 个正整数 a_1,a_2,\dots,a_{l_a} 代表行头的内容,您可以以任意顺序输出。
\hspace{15pt}第四行输出 l_b 个正整数 b_1,b_2,\dots,b_{l_b} 代表列头的内容,您也可以以任意顺序输出。

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
6 5
1 1 1 2 3 5
6
40
99
9
25

输出

复制
Yes
3 1
1 2 3
1
Yes
2 4
3 5
1 1 1 2
No
Yes
4 1
1 1 2 5
1
Yes
1 4
5
1 1 1 2