#include <bits/stdc++.h>
using namespace std;
int arr[(int)(2e6 + 10)], dp[(int)(2e6 + 10)], dp2[(int)(2e6 + 10)], n, m, i, j,
    k;
int main() {
  cin >> n >> m;
  for (i = 1; i <= n; i++) scanf("%d", arr + i);
  if (n >= m) {
    cout << "YES" << '\n';
    return 0;
  }
  for (i = 1; i <= n; i++) {
    for (j = 0; j < m; j++) {
      dp2[(j + arr[i]) % m] = (dp[j] or !j);
    }
    for (j = 0; j < m; j++) dp[j] |= dp2[j];
    memset(dp2, 0, sizeof(dp2));
  }
  if (dp[0])
    cout << "YES" << '\n';
  else
    cout << "NO" << '\n';
}
