#include <cstdio>
#include<math.h>
//这题和之前的那一题差不多,在五个里面选择三个,然后判断是不是素数,再遍历全部的
int n,m,sum;
int ans[50],temp[50];
//先写一个方法来判断是不是素数
bool is_sushu(int x){
if(x<=1)
return false;
for(int i=2;i<=(int)sqrt(x);i++){
if(x%i==0)
return false;
}
return true;
}
int getsum(){
//写一个求和方法
int res=0;
for(int i=0;i<m;i++)
res+=temp[i];
return res;
}
//在开始写dfs
void DFS(int x,int num){
//然后开始判断
if(num>=m){
//相当于已经选了第m个了,就要进行求和然后判断是不是素数,如果是的话就可以加一
if(is_sushu(getsum()))
sum++;
return;
}
if(x>=n)
return;//这个条件别忘记了
else{//其他情况就是
temp[num]=ans[x];//先把x个放入到第num位置上,在递归所有情况,一个是选这个,一个是不选这个
DFS(x+1,num+1);
DFS(x+1,num);
}
}
int main()
{
scanf("%d%d",&n,&m);
sum=0;//让初始值为0
for(int i=0;i<n;i++)
scanf("%d",&ans[i]);
sum=0;
DFS(0,0);
printf("%d",sum);
}