#D1156. 硬币

硬币

题目描述

宇航员 Bob 有一天来到火星上,他有收集硬币的习惯。于是他将火星上所有面值的硬币都收集起来了,一共有 nn 种,每种只有一个:面值分别为 a1,a2ana_1,a_2\dots a_n

Bob 在机场看到了一个特别喜欢的礼物,想买来送给朋友 Alice,这个礼物的价格是 xx 元。Bob 很想知道为了买这个礼物他的哪些硬币是必须被使用的,即 Bob 必须放弃收集好的哪些硬币种类。飞机场不提供找零,只接受恰好 xx 元。

输入格式

第一行包含两个正整数 nnxx1n2001 \le n \le 2001x100001 \le x \le 10000

第二行从小到大为 nn 个正整数 a1,a2,a3ana_1, a_2, a_3 \dots a_n1ai100001 \le a_i \le 10000

输出格式

第一行是一个整数,即有多少种硬币是必须被使用的。

第二行是这些必须使用的硬币的面值(从小到大排列)。

输入数据将保证给定面值的硬币中至少有一种组合能恰好能够支付 xx 元。如果不存在必须被使用的硬币,则第一行输出 00,第二行输出空行。

5 18
1 2 3 5 10
2
5 10