#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, x;
  cin >> n >> x;
  vector<pair<int, int> > v(n);
  for (int i = 0; i < n; i++) {
    cin >> v[i].first;
    v[i].second = i;
  }
  vector<pair<int, int> > v2(n);
  for (int i = 0; i < n; i++) {
    v2[i].first = (v[i].first) & x;
    v2[i].second = i;
  }
  sort(v2.begin(), v2.end());
  sort(v.begin(), v.end());
  int ans = -1;
  for (int i = 0; i < n - 1; i++) {
    if (v[i].first == v[i + 1].first) {
      ans = 0;
      break;
    }
  }
  if (ans == -1) {
    int i = 0;
    int j = 0;
    while (i < n && j < n) {
      if (v[i].first == v2[j].first && v[i].second != v2[j].second) {
        ans = 1;
        break;
      } else if (v[i].first == v2[j].first) {
        if (i == n - 1 || j == n - 1) break;
        if (v[i + 1].first == v2[j].first) {
          ans = 1;
          break;
        } else if (v2[j + 1].first == v[i].first) {
          ans = 1;
          break;
        } else
          i++;
      } else if (v[i].first > v2[j].first)
        j++;
      else if (v[i].first < v2[j].first)
        i++;
    }
  }
  if (ans == -1) {
    for (int i = 0; i < n - 1; i++)
      if (v2[i].first == v2[i + 1].first) {
        ans = 2;
        break;
      }
  }
  cout << ans;
  return 0;
}
