#include<cstdio>
#include<cstring>
#include<cmath>

using namespace std;
int n,r,a[110],b[110],ans;
bool v[110];

bool pd(int x)
{
    if(x<=1) return false;
    int tt=int(sqrt(double(x)+1.0));
    for(int i=2;i<=tt;i++)
    {
       if( x%i==0)
       {
            return false;
       }
    }
    return true;
}
void dfs(int k)
{
    int i;
    if(k==r+1)
    {
        int ss=0;
        for(i=1;i<=r;i++) ss+= b[a[i]];
        if( pd(ss)==true) ans++;
    }
    else
    {
        for(i=a[k-1]+1;i<=n;i++)
           if( v[i])
           {
              v[i]=0;
              a[k]=i;
              dfs(k+1);
              v[i]=1;
           }
    }
}
int main()
{
    scanf("%d%d",&n,&r);
    for(int i=1;i<=n;i++) scanf("%d",&b[i]);
    memset(v,1,sizeof(v));
    a[0]=0;ans=0;
    dfs(1);
    printf("%d\n",ans);
    return 0;
}
/**************************************************************
	Problem: 1687
	User: admin
	Language: C++
	Result: Accepted
	Time:35 ms
	Memory:1144 kb
****************************************************************/