#include #include using namespace std; int m, k; vector data; vector > memo; int solve(int p, int b) { if (memo[p][b] != -1) return memo[p][b]; if (p == m) return 0; int result = 1 + solve(p+1, b); if ((b & (1 << (data[p]-1))) == 0) { int t = 0; for (int q = p; q < m; q++) { if (data[q] != data[p]) t++; result > m >> k) { if (m == 0 && k == 0) return 0; data = vector(m, 0); for (int i = 0; i < m; i++) cin >> data[i]; memo = vector >(m+1, vector(1<