Problem: Today Pari and Arya are playing a game called Remainders.

Pari chooses two positive integer x and k, and tells Arya k but not x. Arya have to find the value <image>. There are n ancient numbers c1, c2, ..., cn and Pari has to tell Arya <image> if Arya wants. Given k and the ancient values, tell us if Arya has a winning strategy independent of value of x or not. Formally, is it true that Arya can understand the value <image> for any positive integer x?

Note, that <image> means the remainder of x after dividing it by y.

Input

The first line of the input contains two integers n and k (1 ≤ n, k ≤ 1 000 000) — the number of ancient integers and value k that is chosen by Pari.

The second line contains n integers c1, c2, ..., cn (1 ≤ ci ≤ 1 000 000).

Output

Print "Yes" (without quotes) if Arya has a winning strategy independent of value of x, or "No" (without quotes) otherwise.

Examples

Input

4 5
2 3 5 12


Output

Yes


Input

2 7
2 3


Output

No

Note

In the first sample, Arya can understand <image> because 5 is one of the ancient numbers.

In the second sample, Arya can't be sure what <image> is. For example 1 and 7 have the same remainders after dividing by 2 and 3, but they differ in remainders after dividing by 7.

Solution (in PYTHON):

Solution:
maxn = 1000000


n, k = map(int, raw_input().split())
clist = map(int, raw_input().split()) 

def get_div(val):
    ret = []
    curi = 2
    while val != 1 and curi * curi <= val:
        if val % curi != 0:
            curi += 1
            continue
        count = 0
        while val % curi == 0:
            val /= curi
            count += 1
        ret.append(curi ** count)

    if val != 1: ret.append(val)
    return ret

def subs(d):
    for c in clist:
        if c % d == 0: 
            return 1
    return 0

def get_ans():
    if k == 1: return 1
    divs = get_div(k)
    for d in divs:
        ret = subs(d)
        if ret == 0:
            return 0
    return 1

if get_ans(): print 'Yes'
else: print 'No'