func_code_string: #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;   }   