#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
long long n,k,sum=0,ans=0,x[N];
bool pd(int a){
if(a==1||a==0) return 0;
if(a==2) return 1;
for(int i=1;i<n;i++){
if(a%i==0){
if(i!=1&&i!=a) return 0;
}
}
return 1;
}
void dfs(int step,int t){
if(step==k){
if(pd(ans)) sum++;
return;
}
for(int i=t;i<n;i++){
ans+=x[i];
dfs(step+1,i+1);
ans-=x[i];
}
}
int main(){
cin>>n>>k;
long long suv=0,m=0;
for(int i=0;i<n;i++){
cin>>x[i];
if(x[i]%2==0) suv++;
if(x[i]==2) m=1;
}
if((suv==n&&m==1&&k>1)||k==0){
cout<<0;
return 0;
}
else if(suv==n&&m==1&&k==1){
cout<<1;
return 0;
}
dfs(0,0);
cout<<sum;
return 0;
}