#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
using namespace std;
const int maxn=5000000;
int ans=0;
int an[22];
int cn[22];
bool vis[maxn];
map<int,int> vis2;
int n,k;
void dfs(int tp)
{
if(tp>k){
long long sum=0;
for(int i=1;i<=k;i++){
sum+=an[i];
}
if(vis2[sum]!=1){
vis2[sum]=1;
bool f=false;
for(int i=2;i<sum;i++){
if(sum%i==0){
f=true;
break;
}
}
if(!f) ans++;
}
return;
}
for(int i=1;i<=n;i++){
if(!vis[cn[i]]){
vis[cn[i]]=true;
an[tp]=cn[i];
dfs(tp+1);
vis[cn[i]]=false;
}
}
}
int main()
{
memset(vis,false,sizeof vis);
cin>>n>>k;
for(int i=1;i<=n;i++) cin>>cn[i];
dfs(1);
cout<<ans<<endl;
}