#include <bits/stdc++.h>
using namespace std;
int p[35], d[35], g[35], h[35], w[55], n, a, b, c, s, MOD;
bool f[35][35][50005], v[35][35][50005];
int main() {
  int i, j, k, r = 0, x;
  scanf("%d%d", &n, &MOD);
  for (i = 0; i <= 40; i++) {
    if (i < 10)
      w[i] = 10 % MOD;
    else
      w[i] = 100 % MOD;
  }
  for (i = 1; i <= n; i++) {
    scanf("%d", &x);
    if (x < 32) {
      s++;
      d[s] = x;
      g[s] = i;
    }
  }
  n = min(n, 31);
  for (i = 1; i <= n; i++) {
    f[i][d[i]][d[i] % MOD] = 1;
    v[i][d[i]][d[i] % MOD] = 1;
    for (j = 0; j < 32; j++) {
      for (k = 0; k < MOD; k++) {
        if (f[i - 1][j][k]) {
          f[i][j][k] = 1;
          f[i][j ^ d[i]][(k * w[d[i]] + d[i]) % MOD] = true;
          v[i][j ^ d[i]][(k * w[d[i]] + d[i]) % MOD] = true;
        }
      }
    }
  }
  a = n;
  if (!f[a][b][c]) {
    puts("No");
    return 0;
  }
  while (a) {
    if (!v[a][b][c])
      a--;
    else {
      r++;
      p[r] = g[a];
      b ^= d[a];
      for (j = 0; j < MOD; j++) {
        if (f[a - 1][b][j] && (j * w[d[a]] + d[a]) % MOD == c) {
          c = j;
          break;
        }
      }
      a--;
    }
  }
  puts("Yes");
  printf("%d\n", r);
  for (i = r; i >= 1; i--) printf("%d ", p[i]);
  puts("");
  return 0;
}
