#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;

int n, x;
int arr[1000];

bool findC(int key){//接受查找数key这个参数
	int low = 0, high = n - 1;

	while (low <= high) {//当low=high的时候就跳出while循环
		int mid = (high + low) / 2;
		
		if (key == arr[mid])return true;
		else if (key < arr[mid])high = mid - 1;
		else if (key > arr[mid])low = mid + 1;
	}
	return false;
}

int main() {
	cin >> n >> x;//读取数据n和x
	for (int i = 0; i < n; i++) cin>>arr[i];//用数组来读取两个数据
	sort(arr, arr + n);//升序排序:二分查找的前提

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			int c = arr[i] *x*x + arr[j] * x;//易错点:注意要找的是-c而不是c
			if (findC(-c) == true) {
				cout << "YES" << endl;
				return 0;//return 0;的灵活写法要注意
			}
		}
	}
	cout << "NO" << endl;
	return 0;
}