#include <bits/stdc++.h>
using namespace std;
const int N = 50005;
int n, m, z, x, y, a[N], b[32][2], bn, ans, p, o;
bool c[32], f[33][33][N];
int main() {
  scanf("%d%d", &n, &p);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &a[i]);
    if (a[i] < 32) {
      b[++bn][0] = a[i];
      b[bn][1] = i;
    }
  }
  for (int i = 1; i < bn; ++i) {
    f[i][b[i][0]][b[i][0] % p] = true;
    for (int j = 0; j <= 31; ++j)
      for (int k = 0; k < p; ++k)
        if (f[i][j][k] == true) {
          f[i + 1][j][k] = true;
          f[i + 1][j ^ b[i + 1][0]]
           [(k * (b[i + 1][0] >= 10 ? 100 : 10) + b[i + 1][0]) % p] = true;
        }
  }
  if (f[bn][0][0] == false)
    printf("No");
  else {
    for (int x = bn, y = 0, z = 0; x > 0; --x) {
      if (f[x - 1][y][z] == true) continue;
      c[x] = true;
      o = 0;
      y ^= b[x][0];
      for (int j = 0; j < p; ++j)
        if ((j * (b[x][0] >= 10 ? 100 : 10) + b[x][0]) % p == z &&
            f[x - 1][y][j] == true) {
          z = j;
          o = 1;
          break;
        }
      if (o == 0) break;
    }
    printf("Yes\n");
    for (int i = 1; i <= bn; ++i)
      if (c[i] == true) ++ans;
    printf("%d\n", ans);
    for (int i = 1; i <= bn; ++i)
      if (c[i] == true) printf("%d ", b[i][1]);
  }
}
