#include<bits/stdc++.h>
#define file "dprcdiv"
using namespace std;
#define int long long
#define ld long double
#define pii pair<int,int>
#define pb push_back
#define mp make_pair
#define X first
#define Y second
#define lb lower_bound
#define ub upper_bound
#define all(x) x.begin(), x.end()
#define sz(x) x.size()
const int N=1e6+5;
const int NN=1e3+9;
const int MOD=1e9+7;
const int dx[4]={0, -1, 0, 1};
const int dy[4]={-1, 0, 1, 0};
const int INF=1e18;
const ld eps=1e-6;
const ld pi=acos(-1.0); // 48 digits
int n, m;
int a[N];
bool dp[NN], f[NN];
void process() {
// Code here :V
cin>>n>>m;
for (int i=1;i<=n;i++) {
cin>>a[i];
a[i]%=m;
}
f[0]=1;
for (int i=1;i<=n;i++) {
for (int j=0;j<m;j++)
dp[j]=f[((j-a[i])%m+m)%m];
// cout<<a[i]<<endl;
// for (int j=0;j<m;j++)
// cout<<"mod "<<j<<" "<<dp[j]<<endl
if (dp[0]) {
cout<<"YES";
return;
}
for (int j=0;j<m;j++)
f[j]=(dp[j] || f[j]);
}
cout<<"NO";
}
signed main() {
cin.tie(0)->sync_with_stdio(0);
// freopen(file".inp","r",stdin);
// freopen(file".out","w",stdout);
int t=1;
// cin>>t;
while (t--) process();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmaWxlICJkcHJjZGl2IgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBYIGZpcnN0CiNkZWZpbmUgWSBzZWNvbmQKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIHN6KHgpIHguc2l6ZSgpCgpjb25zdCBpbnQgTj0xZTYrNTsKY29uc3QgaW50IE5OPTFlMys5Owpjb25zdCBpbnQgTU9EPTFlOSs3Owpjb25zdCBpbnQgZHhbNF09ezAsIC0xLCAwLCAxfTsKY29uc3QgaW50IGR5WzRdPXstMSwgMCwgMSwgMH07CmNvbnN0IGludCBJTkY9MWUxODsKY29uc3QgbGQgZXBzPTFlLTY7CmNvbnN0IGxkIHBpPWFjb3MoLTEuMCk7IC8vIDQ4IGRpZ2l0cwoKaW50IG4sIG07CmludCBhW05dOwpib29sIGRwW05OXSwgZltOTl07Cgp2b2lkIHByb2Nlc3MoKSB7CiAgICAvLyBDb2RlIGhlcmUgOlYKICAgIGNpbj4+bj4+bTsKICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgewogICAgICAgIGNpbj4+YVtpXTsKICAgICAgICBhW2ldJT1tOwogICAgfQogICAgZlswXT0xOwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSB7CiAgICAgICAgZm9yIChpbnQgaj0wO2o8bTtqKyspCiAgICAgICAgICAgIGRwW2pdPWZbKChqLWFbaV0pJW0rbSklbV07Ci8vICAgICAgICBjb3V0PDxhW2ldPDxlbmRsOwovLyAgICAgICAgZm9yIChpbnQgaj0wO2o8bTtqKyspCi8vICAgICAgICAgICAgY291dDw8Im1vZCAiPDxqPDwiICI8PGRwW2pdPDxlbmRsCiAgICAgICAgaWYgKGRwWzBdKSB7CiAgICAgICAgICAgIGNvdXQ8PCJZRVMiOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGZvciAoaW50IGo9MDtqPG07aisrKQogICAgICAgICAgICBmW2pdPShkcFtqXSB8fCBmW2pdKTsKICAgIH0KICAgIGNvdXQ8PCJOTyI7Cn0KCnNpZ25lZCBtYWluKCkgewogICAgY2luLnRpZSgwKS0+c3luY193aXRoX3N0ZGlvKDApOwovLyAgICBmcmVvcGVuKGZpbGUiLmlucCIsInIiLHN0ZGluKTsKLy8gICAgZnJlb3BlbihmaWxlIi5vdXQiLCJ3IixzdGRvdXQpOwogICAgaW50IHQ9MTsKLy8gICAgY2luPj50OwogICAgd2hpbGUgKHQtLSkgcHJvY2VzcygpOwogICAgcmV0dXJuIDA7Cn0K