#include <bits/stdc++.h>
using namespace std;
inline int Getlen(int x) {
  int res = 0;
  while (x) {
    res++;
    x /= 10;
  }
  return res;
}
int PP10[5] = {1, 10, 100, 1000, 10000};
int a[50], len[50], n, p;
int id[50];
vector<int> res;
inline void dfs(int now, int Gmod, int Gxor) {
  if (Gmod == 0 && Gxor == 0 && res.size() > 0) {
    puts("Yes");
    cout << res.size() << endl;
    for (int i = 0; i < (int)res.size(); i++) cout << res[i] << ' ';
    exit(0);
  }
  if (now > n) return;
  dfs(now + 1, Gmod, Gxor);
  res.push_back(id[now]);
  dfs(now + 1, (Gmod * PP10[len[now]] + a[now]) % p, Gxor ^ a[now]);
  res.pop_back();
}
int main() {
  res.clear();
  scanf("%d%d", &n, &p);
  int now = 0, tmp;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &tmp);
    if (tmp <= 31) a[++now] = tmp, len[now] = Getlen(a[now]), id[now] = i;
  }
  n = now;
  dfs(1, 0, 0);
  puts("No");
}
