#include <iostream>
#include <algorithm>
#include <vector>
// 判断一个数是否为质数
bool isPrime(int num) {
if (num < 2) return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return false;
}
return true;
}
int main() {
int n, k;
std::cin >> n >> k;
std::vector<int> a(n);
for (int i = 0; i < n; ++i) {
std::cin >> a[i];
}
// 对数组进行排序
std::sort(a.begin(), a.end());
// 计算第k大的数字减去第k小的数字的值m
int m = a[n - k] - a[k - 1];
if (isPrime(m)) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}
std::cout << m << std::endl;
return 0;
}
/**************************************************************
Problem: 1242
User: fuyijun
Language: C++
Result: Accepted
Time:7 ms
Memory:2076 kb
****************************************************************/