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>).
def check(n,m,a):
    if n>=m:
        return True

    dp = [[False] * (m + 1) for _ in range(n + 1)]
    for i in range(1,n+1):
        dp[i][a[i-1]%m] = True
    for i in range(2,n+1):
        for j in range(m):
            if dp[i][j]:
                continue
            if dp[i-1][j]:
                dp[i][j] = dp[i-1][j]
                continue
            dp[i][j] = dp[i-1][(j-(a[i-1]%m)+m)%m]
    return dp[n][0]


n,m = map(int, input().split())    
a = list(map(int, input().split()))
if check(n,m,a):
    print("YES")
else:
    print("NO")