import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
static int n,k,sum,result;
static int[] array;
static boolean[] judge;
public static void main(String[] args) throws IOException{
String[] str;
str = br.readLine().split(" ");
n = Integer.parseInt(str[0]);
k = Integer.parseInt(str[1]);
sum = 0;
result = 0;
array = new int[n];
judge = new boolean[n];
str = br.readLine().split(" ");
for(int i = 0 ; i < str.length ; i++){
array[i] = Integer.parseInt(str[i]);
}
DFS(0,0);
out.write(result + "");
out.flush();
out.close();
br.close();
}
private static void DFS(int index , int layer){
if(layer == k && Prime(sum)){
result++;
return ;
}
for(int i = index ; i < array.length ; i++){
if(!judge[i]){
judge[i] = true;
layer++;
sum += array[i];
DFS(i , layer);
layer--;
judge[i] = false;
sum -= array[i];
}
}
}
private static boolean Prime(int number){
for(int i = 2 ; i <= (int)(Math.sqrt(number)) ; i++){
if(number % i == 0){
return false;
}
}
return true;
}
}
好好好,现在这种简单的DFS已经难不倒我了