#include <bits/stdc++.h>
using namespace std;
const int MAXL = 25;
int n, m;
long long k;
long long arr[MAXL][MAXL];
map<long long, long long> dp[MAXL];
void recL(int x, int y, long long now) {
  now ^= arr[x][y];
  if (x + y == (n + m - 2) / 2) return void(dp[x][now]++);
  if (x + 1 < n) recL(x + 1, y, now);
  if (y + 1 < m) recL(x, y + 1, now);
}
long long recR(int x, int y, long long now) {
  if (x + y == (n + m - 2) / 2) return dp[x][now];
  now ^= arr[x][y];
  long long res = 0ll;
  if (x > 0) res += recR(x - 1, y, now);
  if (y > 0) res += recR(x, y - 1, now);
  return res;
}
int main() {
  cin >> n >> m >> k;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      cin >> arr[i][j];
    }
  }
  recL(0, 0, 0);
  cout << recR(n - 1, m - 1, k) << "\n";
}
