program p1002;
var
n,k,i,p,t,j,m:integer;
a:array[0..10000]of integer;
f:boolean;
begin
readln(n,k);
for i:=1 to n do
read(a[i]);
for i:= 1 to n-1 do
begin
p:=1;
for j:=i+1 to n do
if a[p]>a[j] then p:=j;
t:=a[i]; a[i]:=a[p]; a[p]:=t;
end;
m:=a[k]-a[n-k+1];
f:=true;
if m<=2 then writeln('YES')
else for i:=2 to m div 2 do
if m mod i=0 then f:=false;
if (f)and(m>2) then writeln('YES');
if f=false then writeln('NO');
write(m);
end.
var
n,k,i,p,t,j,m:integer;
a:array[0..10000]of integer;
f:boolean;
begin
readln(n,k);
for i:=1 to n do
read(a[i]);
for i:= 1 to n-1 do
begin
p:=1;
for j:=i+1 to n do
if a[p]>a[j] then p:=j;
t:=a[i]; a[i]:=a[p]; a[p]:=t;
end;
m:=a[k]-a[n-k+1];
f:=true;
if m<=2 then writeln('YES')
else for i:=2 to m div 2 do
if m mod i=0 then f:=false;
if (f)and(m>2) then writeln('YES');
if f=false then writeln('NO');
write(m);
end.