#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<iomanip>
using namespace std;
const int N = 30, M = 1e7 + 1e6;
int n, k, a[N], vis[M], prime[M], cnt, ans;
void oula() {
for (int i = 2; i <= M; ++i) {
if (!vis[i]) prime[cnt++] = i;
for (int j = 0; j < cnt && i * prime[j] <= M; ++j) {
vis[i * prime[j]] = true;
if (i % prime[j] == 0) break;
}
}
}
void dfs(int s, int sum) {
if (s == k + 1) {
if (!vis[sum]) ans++;
return;
}
for (int i = s; i <= n; ++i) {
dfs(s + 1, sum + a[i]);
}
return;
}
int main() {
oula();
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
dfs(1, 0);
printf("%d\n", ans);
return 0;
}