#include<stdio.h>
#include<math.h>
int n,k,a[22],count=0,sum=0;
int is_prime(int x)
{
for(int i=2;i*i<=x;i++)
if(x%i==0) return 0;
return 1;
}
void dfs(int pos,int sum,int m) //pos表示个数
{
if(pos==k)
{
if(is_prime(sum)) count++;
return ;
}
for(int i=m+1;i<=n-k+pos+1;i++)
dfs(pos+1,sum+a[i],i);
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
dfs(0,0,0);
printf("%d\n",count);
return 0;
}
#include<math.h>
int n,k,a[22],count=0,sum=0;
int is_prime(int x)
{
for(int i=2;i*i<=x;i++)
if(x%i==0) return 0;
return 1;
}
void dfs(int pos,int sum,int m) //pos表示个数
{
if(pos==k)
{
if(is_prime(sum)) count++;
return ;
}
for(int i=m+1;i<=n-k+pos+1;i++)
dfs(pos+1,sum+a[i],i);
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
dfs(0,0,0);
printf("%d\n",count);
return 0;
}