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 subset(sum,arr,n):
    dp = [False]*(sum+1)
    dp[0]=True
    for e in arr:
        for j in range(sum,e-1,-1):
            if dp[j-e]:
                dp[j] = True
    return dp[sum]
     
def solve(): 
  n,k = map(int,input().split())
  arr = [int(x) for x in input().split()]
  end = sum(arr)
  mul = []
  i =k
  while(i<=end):
    mul.append(i)
    i+=k
  flag = False
  for i in mul:
    if(subset(i,arr,n)):
        flag = True
        break
  print("YES" if flag else "NO")
 
if __name__ == '__main__' :
  t = 1
#   t= int(input())
  while(t>0):
     solve() 
     t-=1