#include<iostream>
using namespace std;
const long long mod = 1000000007LL;
long long n, k, a[102], dp[102][256][102], fact[102], sum;
int main() {
	cin >> n >> k; for (int i = 0; i < n; i++)cin >> a[i];
	dp[0][0][0] = 1;
	fact[1] = 1; for (int i = 2; i <= 100; i++) { fact[i] = fact[i - 1] * i; fact[i] %= mod; }
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < 256; j++) {
			for (int k = 0; k < n; k++) {
				if (dp[i][j][k] == 0)continue;
				dp[i + 1][j^a[i]][k + 1] += dp[i][j][k]; dp[i + 1][j^a[i]][k + 1] %= mod;
				dp[i + 1][j][k] += dp[i][j][k]; dp[i + 1][j][k] %= mod;
			}
		}
	}
	for (int i = 1; i <= n; i++) { sum += dp[n][k][i] * fact[i]; sum %= mod; }
	cout << sum << endl;
	return 0;
}