#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll dp[111][256][111];
int main() {
  ll n,m,mod=1000000007;
  cin >> n >> m;
  ll a[n];
  for(int i=0; i<n; i++) cin >> a[i];
  memset(dp,0,sizeof(dp));
  dp[0][0][0]=1;
  for(int i=0; i<n; i++) {
    for(int j=0; j<256; j++) {
      for(int k=0; k<n; k++) {
        dp[i+1][j][k]+=dp[i][j][k];
        dp[i+1][j][k]%=mod;
        dp[i+1][j^a[i]][k+1]+=dp[i][j][k];
        dp[i+1][j^a[i]][k+1]%=mod;
      }
    }
  }
  ll x=1,ans=0;
  for(ll i=1; i<n+1; i++) {
    x*=i;
    x%=mod;
    ans+=dp[n][m][i]*x;
    ans%=mod;
  }
  cout << ans << endl;
  return 0;
}
