human
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.
from  ... Can you provide a Python program to determine if the sequence a occurs in table G?
assistant
#Here is Python program to determine if the sequence a occurs in table G.
math import gcd

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

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

def goodBye():
    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:
        goodBye()
    newr =  exgcd(a.mod,b.mod)[0]*(b.r-a.r)//gcd(a.mod,b.mod)*a.mod+a.r
    newr%=newmode
    return equation(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:
        goodBye()
cur = equation(0, 1)
for i in range(0, len(a)):
    cur = merge(cur, equation((-i) % a[i], a[i]))
y = cur.r

if y == 0: y += x
for i in range(0, len(a)):
    # print("gcd and a[i] ", gcd(x, y + i), a[i])
    if gcd(x, y + i) != a[i]:
        goodBye()

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

# 344579508000 6351696000
# 344579508000 154028628000
# 154028628000/6351696000