#include <stdio.h>
#include 
<math.h>

long n,k,ans=0;
long data[21];
////////////
int getans(long num) //判素数 
{
   
long i;
   
long total;
   total
=(long)(sqrt(num));
   
   
for (i=2;i<=total;i++)
     
if (num%i==0return 0;
   
   ans
++;
   
return 0;   
}



void dfs(long total,long num,long t) //深搜 
{
 
long i;
 
if(total==k) getans(num);
  
else
  
{
     
for(i=t;i<=n;i++)
    
{
       num
+=data[i];
       dfs(total
+1,num,i+1);
       num
-=data[i];///////////////你也可以看它这个,  total表示?
//////////还踩×思父鍪?num表示取了这几个数的和,t表示从前t个数中取了total个数

    }
    /////////////////////////////
  }
   
}


int main()
{
  
long i;
  scanf(
"%ld%ld",&n,&k);
  
  
for(i=1;i<=n;i++) scanf("%ld",&data[i]);
  
  dfs(
0,0,1);
  printf(
"%ld",ans);
  
return 0
}