#include <bits/stdc++.h>
using namespace std;
int n, q;
int f[2][35][50005];
int s[35], c[35], id[35];
void Readln() {
  scanf("%d%d\n", &n, &q);
  int now = 0;
  for (int i = 1; i <= n; i++) {
    int tmp;
    scanf("%d", &tmp);
    if (tmp < 32) {
      now++;
      s[now] = tmp;
      id[now] = i;
    }
  }
  n = now;
  for (int i = 1; i <= n; i++) {
    if (s[i] < 10)
      c[i] = 10;
    else
      c[i] = 100;
  }
}
void Solve() {
  for (int j = 0; j <= 31; j++)
    for (int k = 0; k < q; k++) f[0][j][k] = -1;
  f[0][0][0] = 0;
  for (int i = 0; i < n; i++) {
    int t = i % 2;
    for (int j = 0; j <= 31; j++)
      for (int k = 0; k < q; k++) f[t ^ 1][j][k] = -1;
    for (int j = 0; j <= 31; j++)
      for (int k = 0; k < q; k++)
        if (f[t][j][k] != -1) {
          int num = f[t][j][k];
          f[t ^ 1][j ^ s[i + 1]][(k * c[i + 1] + s[i + 1]) % q] =
              (num | (1 << i));
          f[t ^ 1][j][k] = max(f[t ^ 1][j][k], num);
        }
    if (f[t ^ 1][0][0] > 0) {
      printf("Yes\n");
      int cal = 0, now = f[t ^ 1][0][0];
      for (int j = 1; j <= n; j++) {
        if ((now & (1 << (j - 1))) != 0) cal++;
      }
      printf("%d\n", cal);
      for (int j = 1; j <= n; j++) {
        if ((now & (1 << (j - 1))) != 0) printf("%d ", id[j]);
      }
      printf("\n");
      return;
    }
  }
  printf("No\n");
}
int main() {
  Readln();
  Solve();
  return 0;
}
