#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
bool a[11000][110];
int b[11000];
int main()
{
int n,k;
memset(a,0,sizeof(a));
scanf("%d%d",&n,&k);
int i,j;
for(i=1;i<=n;i++)
{
scanf("%d",&b[i]);
b[i]%=k;
}
a[1][b[1]]=1;
a[1][-b[1]+k]=1;//初值忘记写了,提交没通过。
for(i=1;i<n;i++)
{
for(j=0;j<k;j++)//原来写成j<=k。
{
if(a[i][j]==1)
{
a[i+1][(j+b[i+1])%k]=1;
a[i+1][(j+(-b[i+1])+k)%k]=1;//举例举例7,所以把k写成了7。原来:a[i+1][(j+(-b[i+1])+7+k)%k]=1;(写了一天作业,脑子不太清醒,花了一个小时终于ac了)
}
}
}
if(a[n][0]==1)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
}