#include <bits/stdc++.h>
using namespace std;
static int loop(int sum, vector<int> &options, int times);
static vector<int> erase(vector<int> data, int item);
static bool prime(int i);
int main() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = n; i > 0; i--) cin >> a[i - 1];
int t = 0;
for (int i : a) {
if (i % 2) {
if (prime(loop(i, a, k))) t++;
}
}
cout << t;
return 0;
}
static int loop(int sum,vector<int> &options,int times) {
if (times > 0) {
for (int i : options) {
vector<int> newV = erase(options,i);
int a = loop(sum + i, newV, times - 1);
if (a) {
return sum + (a==1 && times==1 ? 0:a) + i;
}
}
}
return 1;
}
static vector<int> erase(vector<int> data, int item) {
vector<int> result(data.size()-1);
copy(data.begin(),data.begin()+distance(data.begin(),find(data.begin(),data.end(), item)), result.begin());
copy(data.begin() + distance(data.begin(), find(data.begin(), data.end(), item))
+ 1, data.end(), result.begin() + distance(data.begin(), find(data.begin(), data.end(), item)));
return result;
}
static bool prime(int i) {
if (i < 2) return 0;
for (int n = 2; n < int(sqrt(i)); n++) {
if (i % n == 0) return 0;
}
return 1;
}