#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
****************************************************************/