#include<iostream>
#include<cmath>
#include<map>
using namespace std;
int s[25],ans,n,k;
map<int,bool> b;
bool p(int n){
for(int i=2;i<sqrt(n);i++){
if(n%i==0) return 1;
}
return 0;
}
void dfs(int m,int now,int c){
if((c==n&&m<k)) return;
else if(m==k&&b[now]!=1){
if(p(now)==1) return;
ans++;
b[now]=1;
return;
}
else{
dfs(m,now,c+1);
dfs(m+1,now+s[c],c+1);
}
}
int main(){
cin>>n>>k;
for(int i=0;i<n;i++) cin>>s[i];
dfs(0,0,0);
cout<<ans;
return 0;
}
数组也没开多大吧