import java.io.OutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.io.Writer; import java.io.OutputStreamWriter; import java.io.BufferedReader; import java.io.InputStream; /** * Built using CHelper plug-in * Actual solution is at the top * * @author lewin */ public class xorisland_lewin { public static void main(String[] args) { InputStream inputStream = System.in; OutputStream outputStream = System.out; InputReader2 in = new InputReader2(inputStream); OutputWriter out = new OutputWriter(outputStream); XorIsland solver = new XorIsland(); solver.solve(1, in, out); out.close(); } static class XorIsland { public void solve(int testNumber, InputReader2 in, OutputWriter out) { int n = in.nextInt(); int[] arr = in.readIntArray(n); int[] f = new int[1 << n]; for (int i = 0; i < n; i++) for (int j = i + 1; j < n; j++) for (int k = j + 1; k < n; k++) if ((arr[i] ^ arr[j] ^ arr[k]) == 0) f[(1 << i) | (1 << j) | (1 << k)] = 1; for (int lvl = 0; lvl < n; lvl++) for (int i = 0; i < 1 << n; i++) if (((i >> lvl) & 1) == 1) f[i] += f[i - (1 << lvl)]; int best = n; for (int i = 0; i < 1 << n; i++) if (f[i] == 0) best = Math.min(best, n - Integer.bitCount(i)); out.println(best); } } static class OutputWriter { private final PrintWriter writer; public OutputWriter(OutputStream outputStream) { writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream))); } public OutputWriter(Writer writer) { this.writer = new PrintWriter(writer); } public void close() { writer.close(); } public void println(int i) { writer.println(i); } } static class InputReader2 { private BufferedReader in; private StringTokenizer st; public InputReader2(InputStream stream) { in = new BufferedReader(new InputStreamReader(stream)); st = null; } public int[] readIntArray(int tokens) { int[] ret = new int[tokens]; for (int i = 0; i < tokens; i++) { ret[i] = nextInt(); } return ret; } public int nextInt() { return Integer.parseInt(next()); } public String next() { while (st == null || !st.hasMoreTokens()) { try { st = new StringTokenizer(in.readLine()); } catch (IOException e) { e.printStackTrace(); } } return st.nextToken(); } } }