#include <iostream>
using namespace std;
bool u[10010];
long long n,k,a[10010],ans;
bool prime(int x){
if(x==0||x==1)return 0;
if(x==2)return 1;
for(int i=2;i*i<=x;i++){
if(x%i==0)return 0;
}
return 1;
}
void dfs(int x,int step){
int dx;
if(step>=k){
if(step==k){
if(prime(x))ans++;
}
else return;
}
for(int i=1;i<=n;i++){
dx=x+a[i];
if(step<=k){
if(u[i]==true){
u[i]=false;
step++;
dfs(dx,step);
u[i]=true;
step--;
}
}
}
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
u[i]=true;
}
dfs(0,0);
cout<<ans<<endl;
return 0;
}