编程题
### 问题描述
小蓝有一个计算器,计算器的初始值为 $0$ ,小蓝可以对其进行任意次操作,每次操作小蓝可以把计算器的值加上 $a_1,a_2,...,a_n$ 中的任意一个整数。现在小蓝想知道进行任意次操作后计算器的值对 $m$ 取模后有几种可能。但是小蓝不擅长数学问题,请你帮她解决这个问题。
### 输入格式
第一行输入两个整数,代表 $n,m$ 。
第二行输入 $n$ 个整数,代表 $a_1,a_2,a_3,...,a_n$ 。
### 输出格式
输出一行一个整数,代表最终对 $m$ 取模的结果的种类数。
### 样例输入
```txt
3 3
1 2 3
```
### 样例输出
```txt
3
```
### 说明
对于样例,我们将计算器的值变为 $1,2,3$ 时,对 $m$ 取模对应的结果为 $1,2,0$ ,所以总共有 $3$ 种结果。
### 评测数据规模
对于 $50$% 的评测数据 $1 \leq n , m \leq 10^{4} , 1 \leq a_i \leq 10^{4}$ 。
对于 $100$% 的评测数据 $ 1 \leq n , m \leq 10^{5} , 1 \leq a_i \leq 10^{9} $ 。