#include <bits/stdc++.h>
int n, p;
bool k[30];
int pla[30], que[30], top;
void done() {
  int i, cnt = 0;
  for (i = 1; i <= top; ++i)
    if (k[i]) ++cnt;
  printf("Yes\n%d\n", cnt);
  for (i = 1; i <= top; ++i)
    if (k[i]) printf("%d ", pla[i]);
  puts("");
  exit(0);
}
void dfs(int now, int x, int y) {
  if (now > top) return;
  dfs(now + 1, x, y);
  k[now] = 1;
  if ((x ^ que[now]) == 0 &&
      (y * (que[now] > 9 ? 100 : 10) + que[now]) % p == 0)
    done();
  dfs(now + 1, x ^ que[now], (y * (que[now] > 9 ? 100 : 10) + que[now]) % p);
  k[now] = 0;
}
int main() {
  int i, j, x;
  scanf("%d%d", &n, &p);
  for (i = 1; i <= n; ++i) {
    scanf("%d", &x);
    if (x <= 25) {
      que[++top] = x;
      pla[top] = i;
    }
  }
  dfs(1, 0, 0);
  puts("No");
  return 0;
}
