#include<bits/stdc++.h>
using namespace std;
#include<bits/extc++.h>
using namespace __gnu_pbds;
cc_hash_table<int,int> cnt[20];
#define int long long
#define S short
int n,m,k,P,a[20][20];
inline void dfs1(S x,S y,int w){
if(x==P-1){
++cnt[y][w];
if(y==m-1) return;
return dfs1(x,y+1,w^a[x][y+1]);
}
if(x+1<P) dfs1(x+1,y,w^a[x+1][y]);
if(y+1<m) dfs1(x,y+1,w^a[x][y+1]);
}
int i,ans;
inline void dfs2(S x,S y,int w){
if(x==n-1&&y==m-1){
if(cnt[i].find(k^w)!=cnt[i].end())
ans+=cnt[i][k^w];
return;
}
if(x+1<n)dfs2(x+1,y,w^a[x+1][y]);
if(y+1<m)dfs2(x,y+1,w^a[x][y+1]);
}
main(){
cin>>n>>m>>k;
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
cin>>a[i][j];
if(n==1) {
int res=0;
for(int i=0;i<m;++i) res^=a[0][i];
cout<<(res==k)<<'\n';
return 0;
}
P=n/2;
dfs1(0,0,a[0][0]);
for(i=0;i<m;++i)dfs2(P,i,a[P][i]);
cout<<ans<<'\n';
}