鲲鲲有n个硬币,每个硬币有不同的价值wi,他想购买商店里一个价钱为k的物品,但是店家很奇怪,不给找零,现在他应该凑哪些硬币,使得其价值总和刚好为k呢?
输入格式
n+1行。
第1行,2个整数,n和k(1<=n<=20,1<=k<=109),分别表示硬币数,和物品的价格。
第2行,n个整数,表示对应硬币的价值wi(1<=wi<=109)。
输出格式
如果不能凑出价值k,输出NO(别想太多);
如果能凑出价值k,输出YES,接下来一行输出若干个数,表示使用的硬币的价值,每个数之间用空格隔开,如果有多组解,输出硬币编号最小的那组。
样例输入输出
输入1 输出1
4 11
1 3 5 7 YES
1 3 7
输入1 输出1
6 11
1 6 2 4 8 10 YES
1 6 4
样例解释
样例2,答案有多组,但是编号为1,2,4的硬币是编号最小的那组,故输出编号所对应的硬币价值1 6 4。