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>).
from sys import  stdin
input=stdin.readline
read=lambda :map(lambda s:int(s),input().strip().split())
from collections import defaultdict
from  math import gcd
n,k=read()
a=list(read())
a=list(map(lambda s:s%k,a))
# print(a)
'''
i know TLE    
'''
md=[0]*(k+1)
for i in a:
    md[i]+=1
if md[0]:
    print("YES")
    exit()
st=[0]*(k+1)
st[0]=1
for i in range(1,k+1):
    pst=[0]*(k+1)
    for j in range(0,k+1):
        if st[j]:
            for K in range(j,j+(md[i]*i)+1,i):
                if K<k+1:
                    pst[K]=1
                else:
                    break
    st=pst

if st[-1]:
    print("YES")
else:
    print("NO")
