#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2>
inline bool chkmin(T1 &x, const T2 &y) {
  if (x > y) {
    x = y;
    return 1;
  }
  return 0;
}
template <typename T1, typename T2>
inline bool chkmax(T1 &x, const T2 &y) {
  if (x < y) {
    x = y;
    return 1;
  }
  return 0;
}
mt19937 gen(chrono::high_resolution_clock::now().time_since_epoch().count());
__int128 euclid(__int128 a, __int128 b, __int128 &x, __int128 &y) {
  if (b == 0) {
    x = 1, y = 0;
    return a;
  }
  __int128 g = euclid(b, a % b, x, y);
  __int128 nx = y;
  __int128 ny = x - (a / b) * y;
  x = nx, y = ny;
  return g;
}
__int128 gcd(__int128 a, __int128 b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
const __int128 MAXN = 1e4 + 10;
const __int128 INF = 1e12;
__int128 n, m, k;
__int128 a[MAXN];
__int128 readint() {
  long long a;
  cin >> a;
  return __int128(a);
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  n = readint();
  m = readint();
  k = readint();
  __int128 lcm = 1;
  for (__int128 i = 0; i < k; i++) {
    a[i] = readint();
    __int128 g = gcd(a[i], lcm);
    if (lcm / g > INF / a[i]) {
      {
        cout << "NO\n";
        return 0;
      };
    }
    lcm /= g;
    lcm *= a[i];
  }
  if (lcm > n) {
    {
      cout << "NO\n";
      return 0;
    };
  }
  __int128 r1 = 0, m1 = 1;
  for (__int128 i = 0; i < k; i++) {
    __int128 r2 = -i, m2 = a[i];
    r2 += (INF / a[i] + 1) * a[i];
    r2 %= a[i];
    __int128 g = gcd(m1, m2);
    if (r1 % g != r2 % g) {
      {
        cout << "NO\n";
        return 0;
      };
    }
    __int128 m1g = m1 / g, m2g = m2 / g;
    __int128 rev, l;
    euclid(m1g, m2g, rev, l);
    rev += (INF / m2g + 1) * m2g;
    rev %= m2g;
    __int128 k = ((r2 / g - r1 / g + (INF / m2g + 1) * m2g) % m2g) * rev % m2g;
    r1 += m1 * k;
    m1 /= g;
    m1 *= m2;
    r1 %= m1;
  }
  if (r1 == 0) r1 += m1;
  if (r1 > m - k + 1) {
    cout << "NO\n";
    return 0;
  };
  for (__int128 i = 0; i < k; i++) {
    if (gcd(r1 + i, lcm) != a[i]) {
      {
        cout << "NO\n";
        return 0;
      };
    }
  }
  cout << "YES\n";
}
