#include <bits/stdc++.h>
using namespace std;
const int oo = 1e9;
const int MOD = 1000000007;
const double PI = acos(-1);
const int SZ = 1 << 21;
int n, m, freq[SZ], cof[SZ], a[SZ], rev[SZ];
void cool(vector<complex<double> > &A, bool inv) {
  int N = A.size();
  for (int i = 0; i < A.size(); ++i) {
    if (i < rev[i]) {
      swap(A[i], A[rev[i]]);
    }
  }
  for (int m = 1; m < N; m <<= 1) {
    double ang = PI / m * (inv ? -1 : 1);
    complex<double> w(1, 0), wn(cos(ang), sin(ang));
    for (int i = 0; i < N; i += m * 2) {
      w = complex<double>(1, 0);
      for (int j = 0; j < m; ++j) {
        complex<double> u = A[i + j];
        complex<double> v = A[i + m + j];
        A[i + j] = u + w * v;
        A[i + m + j] = u - w * v;
        w *= wn;
      }
    }
  }
  if (inv)
    for (int i = 0; i < N; ++i) {
      A[i] /= N;
    }
}
vector<int> mul(vector<int> a, vector<int> b) {
  vector<complex<double> > fa, fb;
  for (int i = 0; i < a.size(); ++i) fa.push_back(complex<double>(a[i], 0));
  for (int i = 0; i < b.size(); ++i) fb.push_back(complex<double>(b[i], 0));
  int tmp = 1;
  while (tmp < max(a.size(), b.size())) tmp *= 2;
  tmp *= 2;
  int p = int(log2(tmp) + 0.5);
  for (int i = 0; i < tmp; ++i) rev[i] = rev[i >> 1] >> 1 | (1 & i) << (p - 1);
  fb.resize(tmp);
  fa.resize(tmp);
  vector<int> res(tmp);
  cool(fa, false);
  cool(fb, false);
  for (int i = 0; i < tmp; ++i) fa[i] *= fb[i];
  cool(fa, true);
  for (int i = 0; i < tmp; ++i) {
    res[i] = int(fa[i].real() + 0.5);
  }
  return res;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; ++i) {
    scanf("%d", &a[i]);
    freq[a[i]] = 1;
    for (int j = a[i]; j <= m; j += a[i]) cof[a[i]] = 1;
  }
  vector<int> p1;
  for (int i = 0; i <= m; ++i) p1.push_back(cof[i]);
  vector<int> ans = mul(p1, p1);
  vector<int> res;
  for (int i = 1; i <= m; ++i) {
    if (!freq[i] && ans[i]) {
      puts("NO");
      return 0;
    }
    if (cof[i] && !ans[i]) res.push_back(i);
  }
  puts("YES");
  cout << res.size() << endl;
  for (int i = 0; i < res.size(); ++i) {
    if (i) printf(" ");
    printf("%d", res[i]);
  }
  puts("");
  return 0;
}
