boolisprime(int x) { for (int i = 2; i <= sqrt(x); ++i) if (x % i == 0) returnfalse; returntrue; }
voiddfs(int cnt, int idx, int sum) { if (cnt > K) { if (isprime(sum)) ++ans; return; } for (int i = idx; i < N; ++i) { dfs(cnt + 1, i + 1, sum + arr[i]); } }
intmain() { cin >> N >> K; for (int i = 0; i < N; ++i) cin >> arr[i]; dfs(1, 0, 0); cout << ans; return0; }