#include<iostream>

using namespace std;
void add(long long& a, const long long& b, const int& mod) {
  a = (a + b) % mod;
}
int main() {
  int n, t, x;
  const int mod(1000000007);
  long long ans(0);
   cin >> n >> t;
  long long dp[2][256][101] = {};
  dp[0][0][0] = 1;
  for (int i = 0; i < n; ++i) {
      cin >> x;
      for (int j = 0; j < 256; ++j) {
        for (int k = 0; k <= i; ++k) {
          add(dp[(i+1)%2][j][k], dp[i % 2][j][k], mod);
          if (dp[i%2][j][k])
            add(dp[(i+1)%2][j^x][k+1], dp[i % 2][j][k], mod);
          dp[i%2][j][k] = 0;
        }
      }
  }
  long long f(1);
  for (int i = 1; i <= n; ++i) {
    f = (f * i) % mod;
    add(ans, dp[n % 2][t][i] * f, mod);
  }
  cout << ans << '\n';
  return 0;
}