#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int x = 0, fl = 1;
  char st = getchar();
  while (st < '0' || st > '9') {
    if (st == '-') fl = -1;
    st = getchar();
  }
  while (st >= '0' && st <= '9') x = x * 10 + st - '0', st = getchar();
  return x * fl;
}
const int N = 50005;
int a[N], b[N], pos[N], ans[N];
int n, p, cnt;
inline void dfs(int x, int num, int sum, int shi) {
  if (!sum && !shi && num) {
    puts("Yes");
    printf("%d\n", num);
    for (int i = 1; i <= num; i++) printf("%d ", ans[i]);
    exit(0);
  }
  if (x == cnt + 1) return;
  ans[num + 1] = pos[x];
  dfs(x + 1, num + 1, sum ^ b[x],
      (b[x] < 10) ? (shi * 10 + b[x]) % p : (shi * 100 + b[x]) % p);
  dfs(x + 1, num, sum, shi);
}
int main() {
  n = read();
  p = read();
  for (int i = 1; i <= n; i++) {
    a[i] = read();
    if (a[i] < 25) b[++cnt] = a[i], pos[cnt] = i;
  }
  dfs(1, 0, 0, 0);
  puts("No");
  return 0;
}
