#include <bits/stdc++.h>
using namespace std;
long long n, m, k;
long long a[25][25];
map<long long, long long> x[25][25];
long long ans = 0;
void rec1(long long i, long long j, long long z) {
  if (i > n || j > m) return;
  if (i + j - 1 == (n + m - 1) / 2) {
    long long y = z ^ a[i][j];
    y ^= k;
    ans += x[i + 1][j][y];
    ans += x[i][j + 1][y];
    return;
  }
  rec1(i + 1, j, z ^ a[i][j]);
  rec1(i, j + 1, z ^ a[i][j]);
}
void rec2(long long i, long long j, long long z) {
  if (i <= 0 || j <= 0) return;
  if (i + j - 2 == (n + m - 1) / 2) {
    x[i][j][z ^ a[i][j]]++;
    return;
  }
  rec2(i - 1, j, z ^ a[i][j]);
  rec2(i, j - 1, z ^ a[i][j]);
}
int main() {
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) cin >> a[i][j];
  if (n == 1 && m == 1) {
    if (a[1][1] == k)
      cout << 1 << endl;
    else
      cout << 0 << endl;
    return 0;
  }
  rec2(n, m, 0);
  rec1(1, 1, 0);
  cout << ans << endl;
  return 0;
}
