#include<bits/stdc++.h>
#define rep(i,n)for(ll i=0;i<n;i++)
#define MOD 1000000007
using namespace std;
typedef long long ll;

ll dp[200][200][256];//iまでのj個でkをつくる
ll fact[200];
ll a[200];
int main() {
	fact[0]=1;
	for(ll i=1;i<200;i++)fact[i]=(fact[i-1]*i)%MOD;
	ll n,k;scanf("%lld%lld",&n,&k);
	rep(i,n)scanf("%lld",&a[i]);
	dp[0][0][0]=1;
	rep(i,n){
		rep(j,n){
			rep(t,256){
				dp[i+1][j][t]=(dp[i+1][j][t]+dp[i][j][t])%MOD;
				dp[i+1][j+1][t^a[i]]=(dp[i+1][j+1][t^a[i]]+dp[i][j][t])%MOD;
			}
		}
	}
	ll cnt=0;
	for(ll j=0;j<=n;j++){
		cnt=(cnt+(dp[n][j][k]*fact[j])%MOD)%MOD;
	}
	printf("%lld\n",cnt);
}
