#include #include #include using namespace std; using namespace atcoder; namespace mul = boost::multiprecision; using ll = long long; using ld = long double; using mint = modint998244353; int main() { int N, M, K, ans = 0; mul::cpp_int x, y; cin >> N >> K; M = 1 << N; vector A(N); set st; for (int i = 0; i < N; i++) cin >> A[i]; for (int i = 0; i < M; i++) { if (__builtin_popcount(i) < K) continue; x = 0, y = 1; for (int j = 0; j < N; j++) { if (i >> j & 1) { x += A[j]; y *= A[j]; } } st.insert(x); st.insert(y); } cout << st.size() << endl; return 0; }