#include #include #include #include using namespace std; int main() { int N; while (cin >> N) { vector A(N); for (auto& a : A) cin >> a; vector> triple(N, vector(N)); for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) for (int k = 0; k < N; k++) { if ((A[i]^A[j]) == A[k]) triple[i][j] |= (1< cur; int ret = N; function rec = [&](int i, int b) { while (b&(1<= N) { ret = min(ret, N-cur.size()); return; } rec(i+1, b); for (auto j : cur) b |= triple[i][j]; cur.push_back(i); rec(i+1, b); cur.pop_back(); }; rec(0, 0); cout << ret << endl; } }