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 PYTHON3):

Solution:
#prime factorize the k
import math

a=input().split(' ')
n=int(a[0])
k=int(a[1])
t=True
def gcd(a, b):
	if b==0: return a
	else: return gcd(b, a%b)

C=set(map(int, input().split()))
Composite=False

a=math.floor(math.sqrt(k+1))
if k%2==0: Composite=True
else:
	for i in range(3, a+1, 2):
		if k%i==0:
			Composite=True
			break
if not Composite:
	if k>max(C):print ('NO')
	else:
		A=set()
		z=True
		for i in C:
			if i in A: pass
			if i%k==0:
				z=False
				print ('YES')
				break
			else: A.add(i)
		if z: print('NO')

else:
	A=set()
	m=1
	for i in C:
		if i in A: pass
		else:
			A.add(i)
			m*=i/gcd(m,i)
			m%=k
			if m==0:
				t=False
				print('YES')
				break
	if t: print('NO')