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