#include <bits/stdc++.h>
using namespace std;
const int MAXFFTBIT = 21;
const int MAXFFTN = 1 << MAXFFTBIT;
void FFT(complex<double> *a, bool inverse) {
  for (int mask = 0; mask < MAXFFTN; mask++) {
    int newMask = 0;
    for (int i = 0; i < MAXFFTBIT; i++)
      if (mask & (1 << i)) newMask |= 1 << (MAXFFTBIT - i - 1);
    if (mask < newMask) swap(a[mask], a[newMask]);
  }
  double theta = acos(-1.0);
  for (int mask = 1; mask < MAXFFTN; mask <<= 1) {
    complex<double> w(cos(theta), sin(theta) * (inverse ? -1 : 1));
    for (int i = 0; i < MAXFFTN; i += mask << 1) {
      complex<double> mul(1, 0);
      for (int j = 0; j < mask; j++) {
        complex<double> tmp1 = a[i + j] + a[i + j + mask] * mul,
                        tmp2 = a[i + j] - a[i + j + mask] * mul;
        a[i + j] = tmp1;
        a[i + j + mask] = tmp2;
        mul *= w;
      }
    }
    theta /= 2;
  }
  if (inverse)
    for (int i = 0; i < MAXFFTN; i++) a[i] /= MAXFFTN;
}
void FFTmultiply(complex<double> *a, complex<double> *b, complex<double> *c) {
  FFT(a, false);
  FFT(b, false);
  for (int i = 0; i < MAXFFTN; i++) c[i] = a[i] * b[i];
  FFT(c, true);
}
void FFTsquare(complex<double> *a, complex<double> *b) {
  FFT(a, false);
  for (int i = 0; i < MAXFFTN; i++) b[i] = a[i] * a[i];
  FFT(b, true);
}
int n, m;
complex<double> a[MAXFFTN], b[MAXFFTN];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = (0); i < (n); i++) {
    int x;
    scanf("%d", &x);
    a[x] = complex<double>(1, 0);
  }
  FFTsquare(a, b);
  FFT(a, true);
  bool fail = false;
  for (int i = (0); i < (m + 1); i++) {
    if (a[i].real() < 0.5 && b[i].real() > 0.5) {
      fail = true;
      break;
    }
  }
  if (fail) {
    puts("NO");
  } else {
    puts("YES");
    int res = 0;
    for (int i = (0); i < (MAXFFTN); i++) {
      res += a[i].real() > 0.5 && b[i].real() < 0.5;
    }
    printf("%d\n", res);
    for (int i = (0); i < (MAXFFTN); i++) {
      if (a[i].real() > 0.5 && b[i].real() < 0.5) {
        printf("%d ", i);
      }
    }
    putchar('\n');
  }
  return 0;
}
