#include <bits/stdc++.h>
using namespace std;
int n, m, half;
long long k, ans = 0, a[25][25];
map<long long, int> mp[20][20];
void calcf(int x, int y, long long val, int cnt) {
  val ^= a[x][y];
  if (cnt == half) {
    mp[x][y][val]++;
    return;
  }
  if (x + 1 < n) calcf(x + 1, y, val, cnt + 1);
  if (y + 1 < m) calcf(x, y + 1, val, cnt + 1);
}
void calcb(int x, int y, long long val, int cnt) {
  if (cnt == n + m - 2 - half) {
    if (mp[x][y].count(val ^ k)) ans += mp[x][y][val ^ k];
    return;
  }
  val ^= a[x][y];
  if (x > 0) calcb(x - 1, y, val, cnt + 1);
  if (y > 0) calcb(x, y - 1, val, cnt + 1);
}
int main() {
  int i, j;
  cin >> n >> m >> k;
  half = (n + m - 2) / 2;
  for (i = 0; i < n; i++)
    for (j = 0; j < m; j++) cin >> a[i][j];
  calcf(0, 0, 0, 0);
  calcb(n - 1, m - 1, 0, 0);
  cout << ans;
}
