Given an array
A
consisting of
n
positive integers and a number
m. Select the sequence of positions
B 1
,
B2
, ...,
Bk
(1 <= B
1 < B
2 < ... < B
k <= n) such that   ;
\((\sum_{i=1}^{k} A_{B_i}) mod \; m\) was the maximum (that is, so that the remainder of dividing the sum of the elements of the subsequence by the number
m
is the maximum possible). The selected sequence can be empty.
Calculate the maximum possible value of
\((\sum_{i=1}^{k} A_{B_i}) mod \; m\).
Input
The first line contains two integers
n
and
m
(1 <= n <= 35, 1 <= m <= 10
9 sup>). The second line contains n
integers A1
, A2< /code>, ..., An
(1 <= Ai <= 109 )
Imprint
Output one number - the maximum value \((\sum_{i=1}^{k} A_{B_i}) mod \; m\)
Examples
# |
Input |
Output |
1 |
4 4
5 2 4 1
| 3 |
2 |
3 20
199 41 299
| 19 |
Explanations
In the first example, you can choose B = {1, 2}
. (A1 + A2) mod m = (5 + 2) % 4 = 3
.
In the second example, you can select B = {3}
.