#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 * 31 + 10;
int son[N][2], idx, n;
void insert(int x) {
  int p = 0;
  for (int i = 30; i >= 0; --i) {
    int u = x >> i & 1;
    if (!son[p][u]) son[p][u] = ++idx;
    p = son[p][u];
  }
}
int query(int p) {
  if (!son[p][1] && !son[p][0])
    return 1;
  else if (!son[p][1])
    return query(son[p][0]);
  else if (!son[p][0])
    return query(son[p][1]);
  else
    return max(query(son[p][0]) + 1, query(son[p][1]) + 1);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    int x;
    scanf("%d", &x);
    insert(x);
  }
  printf("%d\n", n - query(0));
  return 0;
}
