CF1010C Border

题目描述

宇航员 Natasha 抵达了火星。她知道火星人是非常贫穷的外星人。为了让火星公民过上更好的生活,他们的皇帝决定向每一位访问火星的游客征税。Natasha 是地球居民,因此她必须支付入境火星的税款。 火星上有 $n$ 种面额的纸币:第 $i$ 种纸币的面额为 $a_i$。Natasha 每种面额的纸币都有无限多张。 火星人每只手有 $k$ 根手指,因此他们使用 $k$ 进制的数字系统。此外,火星人认为 $k$ 进制下的数字 $d$ 是神圣的。因此,如果 Natasha 支付的税款在 $k$ 进制下的最后一位是 $d$,火星人就会感到高兴。不幸的是,Natasha 还不知道火星人的神圣数字 $d$ 是多少。 请你判断,对于哪些 $d$,Natasha 能让火星人高兴。 Natasha 只能使用她的纸币。火星人不会找零。

输入格式

第一行包含两个整数 $n$ 和 $k$($1 \le n \le 100\,000$,$2 \le k \le 100\,000$),分别表示纸币的种类数和火星的进制基数。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$),表示火星上每种纸币的面额。 所有数字均以十进制给出。

输出格式

第一行输出 Natasha 能让火星人高兴的 $d$ 的个数。 第二行按升序输出所有这样的 $d$。 所有数字均以十进制输出。

说明/提示

考虑第一个测试用例。它使用八进制数制。 如果你拿一张面额为 $12$ 的纸币,你会得到 $14_8$(八进制)。最后一位是 $4_8$。 如果你拿一张面额为 $12$ 的纸币和一张面额为 $20$ 的纸币,总金额为 $32$。在八进制下是 $40_8$。最后一位是 $0_8$。 如果你拿两张面额为 $20$ 的纸币,总金额为 $40$,这在八进制下是 $50_8$。最后一位是 $0_8$。 除了 $0_8$ 和 $4_8$ 之外,无法得到其他数字。$0_8$ 和 $4_8$ 也可以通过其他方式获得。 第二个测试用例使用十进制数制。所有纸币的面额都以零结尾,因此 Natasha 只能支付十进制下末尾为零的金额。 由 ChatGPT 4.1 翻译