You are given a sequence of numbers a1, a2, ..., an, and a number m.

Check if it is possible to choose a non-empty subsequence aij such that the sum of numbers in this subsequence is divisible by m.

Input

The first line contains two numbers, n and m (1 ≤ n ≤ 106, 2 ≤ m ≤ 103) — the size of the original sequence and the number such that sum should be divisible by it.

The second line contains n integers a1, a2, ..., an (0 ≤ ai ≤ 109).

Output

In the single line print either "YES" (without the quotes) if there exists the sought subsequence, or "NO" (without the quotes), if such subsequence doesn't exist.

Examples

Input

3 5
1 2 3


Output

YES


Input

1 6
5


Output

NO


Input

4 6
3 1 1 3


Output

YES


Input

6 6
5 5 5 5 5 5


Output

YES

Note

In the first sample test you can choose numbers 2 and 3, the sum of which is divisible by 5.

In the second sample test the single non-empty subsequence of numbers is a single number 5. Number 5 is not divisible by 6, that is, the sought subsequence doesn't exist.

In the third sample test you need to choose two numbers 3 on the ends.

In the fourth sample test you can take the whole subsequence.
#!/usr/bin/python3
import sys
 
readline = sys.stdin.readline
 
ns = lambda: readline().rstrip()
ni = lambda: int(readline().rstrip())
nm = lambda: map(int, readline().split())
nl = lambda: list(map(int, readline().split()))
 
# def solve():
#     n, x = nm()
#     d = nl()*2
#     f = [x*(x+1)//2 for x in d]
#     for i in range(2*n-1):
#         f[i+1] += f[i]
#     l = -1
#     s = sum(d[:n])
#     ans = 0
#     for r in range(n, 2*n):
#         s += d[r]
#         # print(s)
#         while s > x:
#             l += 1
#             s -= d[l]
#         # print(l, r, s, f[r] - f[l] + d[l]*(d[l]+1)//2 - (d[l]-x+s)*(d[l]-x+s+1)//2)
#         ans = max(ans, f[r] - f[l] + d[l]*(d[l]+1)//2 - (d[l]-x+s)*(d[l]-x+s+1)//2)
#     print(ans)
 
#     return
 
# solve()

"Codeforces Round #319 (Div. 2)"
"B. Modulo Sum"
n,m=nm()
a=nl()
te=set()
tt=[]
f=1
for i in a:
    for j in te:
        q=(j+i)%m
        tt.append(q)
    tt.append(i%m)
    if 0 in tt:
        f=0
        break
    while len(tt)>0:
        q=tt.pop()
        te.add(q)
if f==0:
    print("YES")
else:
    print("NO")
    