#include <bits/stdc++.h>
int a[10000005][2], n, q, cnt, ans;
void dfs(int p, int v) {
  if (!a[p][0] && !a[p][1]) {
    if (v > ans) ans = v;
    return;
  }
  if (a[p][0] && a[p][1]) ++v;
  if (a[p][0]) dfs(a[p][0], v);
  if (a[p][1]) dfs(a[p][1], v);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &q);
    int p = 0;
    for (int j = 29; j >= 0; --j) {
      int k = (q >> j) & 1;
      if (!a[p][k]) a[p][k] = ++cnt;
      p = a[p][k];
    }
  }
  dfs(0, 1);
  printf("%d", n - ans);
  return 0;
}
