#include <bits/stdc++.h>
using namespace std;
int n;
int a[200005];
int dp(int l, int r, int k) {
  if (l >= r) return 0;
  if (l + 1 == r) return 1;
  assert(k != -1);
  sort(a + l, a + r);
  int mid = r;
  for (int i = l; i < r; i++) {
    if ((a[i] & (1 << k)) != 0) {
      mid = i;
      break;
    }
  }
  for (int i = mid; i < r; i++) {
    a[i] ^= (1 << k);
  }
  if (mid == r || mid == l) return dp(l, r, k - 1);
  return max(dp(l, mid, k - 1), dp(mid, r, k - 1)) + 1;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  printf("%d\n", n - dp(0, n, 30));
  return 0;
}
