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 = [int (i) for i in input().split(" ")]
arr = [int (i) % m for i in input().split(" ")]
 
c = {}
for i in range(m):
    c[i] = False
 
stack = [0]
newstack = []
 
for i in arr:
    for j in stack:
        arrrrgh = (i+j) % m
        if (arrrrgh == 0):
            print ("YES")
            exit()
        elif (c[arrrrgh] == False):
            newstack.append(arrrrgh)
            c[arrrrgh] = True
    stack = stack + newstack
    newstack = []
 
print("NO")
