rt
#include<bits/stdc++.h>
using namespace std;
int n,k,x[205],ans,a[205],vis[205],ind,b[205];
bool isprime(int n){
if(n==0 or n==1)return 0;
for(int i=2;i<=sqrt(n);i++)if(n%i==0)return 0;
return 1;
}
void dfs(int pos){
if(pos==k+1){
int temp=0;
for(int i=1;i<=k;i++){
temp+=x[a[i]];
}
if(isprime(temp)){
bool flag=1;
for(int i=1;i<=ind;i++){
if(b[i]==temp){
flag=0;break;
}
}
if(flag){
ans++;
b[++ind]=temp;
}
}
return;
}
for(int i=1;i<=n;i++){
if(!vis[i]){
vis[i]=1;
a[pos]=i;
dfs(pos+1);
vis[i]=0;
}
}
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>x[i];
}
dfs(1);
cout<<ans;
}