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>).
n, m = map(int, input().split())
mas = [int(i) for i in input().split()]
if n > m:
    pref = [0] * n
    pref[0] = mas[0]
    for i in range(1, n):
        pref[i] = pref[i - 1] + mas[i]
    d = dict()
    for i in range(n):
        d[pref[i] % m] = d.get(pref[i] % m, 0) + 1
        if d[pref[i] % m] > 1:
            print("YES")
            break
    else:
        print("N0")
else:
    dp = [[0] * (m + 1) for i in range(m + 1)]
    for i in range(n):
        dp[0][mas[i] % m] = 1
    for i in range(n):
        for r in range(0, m):
            if dp[i][r] == 1:
                dp[i + 1][r] = 1
                dp[i + 1][(r + mas[i]) % m] = 1
    if dp[n - 1][0] == 1:
        print("YES")
    else:
        print("NO")