203018 - 最大子序列模值

从 n 个数中任意挑选一些数(可以一个都不选),把它们加起来,然后对 m 取余数。 问这个余数最大能是多少?

Input

第一行包含两个整数 n 和 m(1 ≤ n ≤ 35,1 ≤ m ≤ 10^9)。 第二行包含 n 个整数 a1, a2, …, an(1 ≤ ai ≤ 10^9)。

Output

输出可能取得的最大值。

Examples

Input

4 4
5 2 4 1

Output

3

Input

3 20
199 41 299

Output

19

Hint

在第一个样例中,可以选择序列 b = {1, 2},相加的和模 4 之后为 3,其值最大。 在第二个样例中,可以选择序列 b = {3}。

Time Limit 1 second
Memory Limit 128 MB
Stats
上一题 下一题