#include<stdio.h>
int zs(int m){
if(m<2){
return 0;
}else{
int i;
for(i=2;i<=m-1;i++){
if(m%i==0){
return 0;
}
}
return 1;
}
}
int main()
{
int n,x;
scanf("%d",&n);
scanf("%d",&x);
int a[n],i,t,j,h;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++)
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
h=a[n-x]-a[x-1];
if(zs(h)==1){
printf("YES\n");
printf("%d",h);
}else{
printf("NO\n");
printf("%d",h);
}
return 0;
}
/**************************************************************
Problem: 1242
User: admin
Language: C
Result: Accepted
Time:11 ms
Memory:1144 kb
****************************************************************/