#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void read(T& x) {
  bool fu = 0;
  char c;
  for (c = getchar(); c <= 32; c = getchar())
    ;
  if (c == '-') fu = 1, c = getchar();
  for (x = 0; c > 32; c = getchar()) x = x * 10 + c - '0';
  if (fu) x = -x;
};
template <class T>
inline void read(T& x, T& y) {
  read(x);
  read(y);
}
template <class T>
inline void read(T& x, T& y, T& z) {
  read(x);
  read(y);
  read(z);
}
inline char getc() {
  char c;
  for (c = getchar(); c <= 32; c = getchar())
    ;
  return c;
}
int n, p, i, j, k, l, g, x;
int a[50010];
int pos[40], c[40];
long long len[1111];
char f[33][32][50010], f2[33][32][50010];
int v[11111];
long long pow(long long a, long long b, long long c) {
  long long ans = 1;
  for (a %= c; b; b >>= 1, a = a * a % c)
    if (b & 1) ans = ans * a % c;
  return ans;
}
void xx(char& x, char y) { x = min(10, x + y); }
int main() {
  read(n, p);
  for (i = 1; i <= n; i++) {
    read(x);
    if (x < 32) {
      g++;
      pos[g] = i;
      c[g] = x;
      for (len[g] = 1; len[g] <= c[g]; len[g] *= 10)
        ;
    }
  }
  f[0][0][0] = 1;
  for (i = 0; i <= g - 1; i++)
    for (j = 0; j <= 31; j++)
      for (k = 0; k <= p - 1; k++)
        if (f[i][j][k] > 0) {
          xx(f[i + 1][j ^ c[i + 1]][(1LL * k * len[i + 1] + c[i + 1]) % p],
             f[i][j][k]);
          f2[i + 1][j ^ c[i + 1]][(1LL * k * len[i + 1] + c[i + 1]) % p] = 1;
          xx(f[i + 1][j][k], f[i][j][k]);
        }
  if (f[g][0][0] < 2) {
    printf("No\n");
    return 0;
  }
  printf("Yes\n");
  i = g;
  j = 0;
  k = 0;
  while (i) {
    if (f2[i][j][k]) v[++v[0]] = pos[i];
    if (f2[i][j][k]) {
      bool h = 0;
      for (int j2 = (0); j2 <= (31); j2++) {
        for (int k2 = (0); k2 <= (p - 1); k2++)
          if (f[i - 1][j2][k2])
            if ((j2 ^ c[i]) == j)
              if ((1LL * k2 * len[i] + c[i]) % p == k) {
                j = j2;
                k = k2;
                h = 1;
                break;
              }
        if (h) break;
      }
    }
    i--;
  }
  printf("%d\n", v[0]);
  for (i = v[0]; i >= 1; i--) printf("%d ", v[i]);
  printf("\n");
  return 0;
}
