#include <bits/stdc++.h>
using namespace std;
struct base {
  long double r, i;
  base(long double x = 0, long double y = 0) : r(x), i(y) {}
  base operator+(const base &a) const { return base(r + a.r, i + a.i); }
  base operator-(const base &a) const { return base(r - a.r, i - a.i); }
  base operator*(const base &a) const {
    return base(r * a.r - i * a.i, r * a.i + i * a.r);
  }
  base operator/(long double value) { return base(r / value, i / value); }
};
const long double pi = acos(-1.0);
int rev(int n, int lg) {
  int res = 0;
  for (int i = 0; i < lg; i++)
    if (n & (1 << i)) res |= 1 << (lg - 1 - i);
  return res;
}
void DFT(vector<base> &v, bool inv) {
  int n = v.size();
  int lg = 0;
  while ((1 << lg) < n) lg++;
  for (int i = 0; i < n; ++i)
    if (i < rev(i, lg)) swap(v[i], v[rev(i, lg)]);
  for (int len = 2; len <= n; len <<= 1) {
    long double ang = 2 * pi * (inv ? -1 : 1) / len;
    base wl(cos(ang), sin(ang));
    for (int i = 0; i < n; i += len) {
      base w(1);
      for (int j = 0; j < len / 2; ++j) {
        base p = v[i + j], q = v[i + j + len / 2] * w;
        v[i + j] = p + q;
        v[i + j + len / 2] = p - q;
        w = w * wl;
      }
    }
  }
  if (inv)
    for (int i = 0; i < n; ++i) v[i] = v[i] / n;
}
vector<base> mu(vector<base> a) {
  vector<base> fa(a.begin(), a.end());
  int n = 1;
  while (n < a.size()) n *= 2;
  n *= 2;
  fa.resize(n);
  DFT(fa, 0);
  for (int i = 0; i < n; i++) fa[i] = fa[i] * fa[i];
  DFT(fa, 1);
  return fa;
}
int n, m;
vector<base> p;
bool a[1000001];
vector<int> sol;
vector<int> b;
bool f = 1;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> m;
  p = vector<base>(m + 1);
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    a[x] = 1;
    p[x] = 1;
  }
  p = mu(p);
  for (int i = 1; f && i <= m; i++) {
    int x = p[i].r + 0.5;
    if (x && !a[i]) f = 0;
    if (!x && a[i]) sol.push_back(i);
  }
  if (f) {
    cout << "YES\n" << sol.size() << '\n';
    for (int i : sol) cout << i << ' ';
  } else
    cout << "NO";
  return 0;
}
