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

d={}
def dp(l,m,s,i,c):
    print(l,m,s,i,c)
    if s%m==0 and c!=0:
        return 1 
    if i==n:
        return 0
       
    if (s,i,c) in d:
       
        return d[(s,i,c)]
    d[(s+l[i],i+1,c+1)]=dp(l,m,(s+l[i]),i+1,c+1)
    
    d[(s,i+1,c)]=dp(l,m,(s),i+1,c)
 
    d[(s,i,c)]=d[(s,i+1,c)]+d[(s+l[i],i+1,c+1)]
   
    return d[(s,i,c)]

n,m=list(map(int,input().split()))
l=list(map(int,input().split()))
r=dp(l,m,0,0,0)

if r!=0:
    
    print("yes")
else:
    print("no")
        
