#include <bits/stdc++.h>
using namespace std;
void fast() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
}
long long t, i, j, k, n, temp, flag, ans, mid, m;
long long a[22][22];
map<pair<pair<long long, long long>, long long>, long long> M;
void construct(long long i, long long j, long long c, long long x) {
  if (c == mid) {
    M[{{i, j}, x}]++;
    return;
  }
  if (i + 1 <= n) construct(i + 1, j, c + 1, x ^ a[i + 1][j]);
  if (j + 1 <= m) construct(i, j + 1, c + 1, x ^ a[i][j + 1]);
}
void revconstruct(long long i, long long j, long long c, long long x) {
  if (c == mid) {
    ans += M[{{i, j}, k ^ x}];
    return;
  }
  if (i > 1) revconstruct(i - 1, j, c + 1, x ^ a[i][j]);
  if (j > 1) revconstruct(i, j - 1, c + 1, x ^ a[i][j]);
}
int main() {
  fast();
  cin >> n >> m >> k;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++) {
      cin >> a[i][j];
    }
  }
  mid = (n + m - 2) / 2;
  construct(1, 1, 0, a[1][1]);
  mid = n + m - 2 - mid;
  revconstruct(n, m, 0, 0);
  cout << ans;
  return 0;
}
