#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
void ex_gcd(long long a, long long b, long long &x, long long &y) {
  if (b == 0) {
    x = (long long)1, y = (long long)0;
  } else {
    ex_gcd(b, a % b, x, y);
    long long t = x;
    x = y;
    y = t - a / b * y;
  }
}
long long n, m, k, a[10005];
long long row, col;
int main() {
  cin >> n >> m >> k >> a[1];
  row = a[1];
  if (row > n) {
    printf("NO\n");
    return 0;
  }
  for (int i = 2; i <= k; i++) {
    cin >> a[i];
    long long g = gcd(row, a[i]);
    if ((col + i - 1) % g) {
      printf("NO\n");
      return 0;
    }
    long long x, y;
    ex_gcd(row / g, a[i] / g, x, y);
    x = (x * (-i + 1 - col) / g) % (a[i] / g);
    col += x * row;
    row = row / g * a[i];
    if (row > n) {
      printf("NO\n");
      return 0;
    }
    col = (col % row + row) % row;
  }
  if (!col) col = row;
  if (col + k - 1 > m) {
    printf("NO\n");
    return 0;
  }
  for (int i = 1; i <= k; i++)
    if (gcd(row, col + i - 1) != a[i]) {
      printf("NO\n");
      return 0;
    }
  printf("YES\n");
  return 0;
}
