338_D. GCD Table
Consider a table G of size n × m such that G(i, j) = GCD(i, j) for all 1 ≤ i ≤ n, 1 ≤ j ≤ m. GCD(a, b) is the greatest common divisor of numbers a and b.

You have a sequence of positive integer numbers a1, a2, ..., ak. We say that this sequence occurs in table G if it coincides with consecutive elements in some row, starting from some position. More formally, such numbers 1 ≤ i ≤ n and 1 ≤ j ≤ m - k + 1 should exist that G(i, j + l - 1) = al for all 1 ≤ l ≤ k.

Determine if the sequence a occurs in table G.

Input

The first line contains three space-separated integers n, m and k (1 ≤ n, m ≤ 1012; 1 ≤ k ≤ 10000). The second line contains k space-separated integers a1, a2, ..., ak (1 ≤ ai ≤ 1012).

Output

Print a single word "YES", if the given sequence occurs in table G, otherwise print "NO".

Examples

Input

100 100 5
5 2 1 2 1


Output

YES


Input

100 8 5
5 2 1 2 1


Output

NO


Input

100 100 7
1 2 3 4 5 6 7


Output

NO

Note

Sample 1. The tenth row of table G starts from sequence {1, 2, 1, 2, 5, 2, 1, 2, 1, 10}. As you can see, elements from fifth to ninth coincide with sequence a.

Sample 2. This time the width of table G equals 8. Sequence a doesn't occur there.
```python


from math import gcd


def LCM(a, b):
    if min(a, b) == 0: return max(a, b)
    return a // gcd(a, b) * b


class Eqn():
    def __init__(self, r, mod):
        self.r = r
        self.mod = mod


def bye():
    print("NO")
    exit(0)


def exgcd(a, b):
    if b == 0:
        return (1, 0)
    xp, yp = exgcd(b, a % b)
    x = yp
    y = xp - a // b * yp
    return (x, y)


def merge(a, b):
    newmode = LCM(a.mod, b.mod)
    if (a.r - b.r) % gcd(a.mod, b.mod) != 0:
        bye()
    newr = exgcd(a.mod, b.mod)[0] * (b.r - a.r) // gcd(a.mod, b.mod) * a.mod + a.r
    newr %= newmode
    return Eqn(newr, newmode)


x, y = 0, 0
n, m, k = [int(i) for i in input().split()]
a = [int(i) for i in input().split()]
for i in a:
    x = LCM(x, i)
    if x > n:
        bye()
cur = Eqn(0, 1)
for i in range(0, len(a)):
    cur = merge(cur, Eqn((-i) % a[i], a[i]))
y = cur.r

if y == 0: y += x
for i in range(0, len(a)):
    if gcd(x, y + i) != a[i]:
        bye()

if x > n or y + k - 1 > m: bye()
print("YES")

```