#include<bits/stdc++.h>
using namespace std;
int n,k,a[25];
bool used[25];
set<int>s;
void addPrime(long long n)
{
if(n == 1)return;
if(n == 2){s.insert(n);return;}
for(int i = 2;i*i <= n;i ++)
if(n%i == 0)return;
s.insert(n);
}
void dfs(int dep,long long sum)
{
if(dep == k){addPrime(sum);return;}
for(int i = 0;i < n;i ++)
if(!used[i])
{
used[i] = true;
dfs(dep+1,sum+a[i]);
used[i] = false;
}
}
int main()
{
cin >> n >> k;
for(int i = 0;i < n;i ++)
cin >> a[i];
dfs(0,0);
cout << s.size();
return 0;
}
有哪位大佬能看看是哪里错了,第一次做深搜的题T_T