#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;
}