You are given a sequence of numbers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub>, and a number *m*.

Check if it is possible to choose a non-empty subsequence *a*<sub class="lower-index">*i*<sub class="lower-index">*j*</sub></sub> such that the sum of numbers in this subsequence is divisible by *m*.
The first line contains two numbers, *n* and *m* (1 ≤ *n* ≤ 10<sup class="upper-index">6</sup>, 2 ≤ *m* ≤ 10<sup class="upper-index">3</sup>) — the size of the original sequence and the number such that sum should be divisible by it.

The second line contains *n* integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (0 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).
"""
3 5
1 2 3
"""

n, m = map(int, input().split())
arr = list(map(int, input().split()))

dp = [[False] * (m)] * 2
for i in range(1, n + 1):
    mod_val = (arr[i- 1] % m)
    dp[1][mod_val] = True
    for j in range(1, m):
        if(dp[0][j] == True):
            dp[1][ (j + mod_val) % m] = True
    for j in range(m):
        dp[0][j] = dp[1][j]
isDivisible = dp[0];
# left, right = 1, m - 1
# while(left < right):
#     if(dp[left] and dp[right]):
#         isDivisible = True
#         break;
#     left += 1
#     right -= 1
print("YES" if(isDivisible) else "NO")

