#include <bits/stdc++.h>
using namespace std;
long long mp[25][25];
int n, m;
map<long long, long long> dp[25];
void dfs(int x, int y, long long k) {
  if (x > n || y > m) return;
  k ^= mp[x][y];
  if ((x + y) == ((n + m) / 2 + 1)) {
    dp[x][k]++;
    return;
  }
  dfs(x + 1, y, k);
  dfs(x, y + 1, k);
}
long long find(int x, int y, long long k) {
  if (x == 0 || y == 0) return 0;
  if ((x + y) == ((n + m) / 2 + 1)) return dp[x][k];
  return find(x - 1, y, k ^ mp[x][y]) + find(x, y - 1, k ^ mp[x][y]);
}
int main() {
  long long k;
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) cin >> mp[i][j];
  dfs(1, 1, 0);
  cout << find(n, m, k);
  return 0;
}
