#include <bits/stdc++.h>
using namespace std;
#define ll long long
bool func(ll mid, vector<vector<ll>> &V, ll r)
{
map<ll, ll> mt;
ll cnt = 0;
vector<pair<ll, map<ll, ll>>> mp(V[0].size(), {0, mt});
for (ll i = 0; i < mid; i++)
{
for (ll j = 0; j < V[0].size(); j++)
{
ll d = V[i][j];
ll ct = 0;
while (d > 0)
{
ll k = d % 2;
if (k == 1)
{
mp[j].second[ct]++;
if (mp[j].second[ct] == 1)
{
mp[j].first = mp[j].first + (1 << ct);
}
}
d = d / 2;
ct++;
}
}
}
map<ll, ll> pm;
ll ans = 0;
for (ll i = 0; i < mid; i++)
{
ll s = mp[i].first;
ll ct = 0;
while (s > 0)
{
ll k = s % 2;
if (k == 1)
{
pm[ct]++;
if (pm[ct] == 1)
{
ans = ans + (1 << ct);
}
}
s = s / 2;
ct++;
}
}
if (ans > r)
{
cnt++;
}
ll j = 0;
for (ll i = mid; i < V[0].size(); i++)
{
ll t = mp[j].first;
ll ctt = 0;
while (t > 0)
{
ll k = t % 2;
if (k == 1)
{
pm[ctt]--;
if (pm[ctt] == 0)
{
ans = ans - (1 << ctt);
}
}
ctt++;
t = t / 2;
}
ll s = mp[i].first;
ll ct = 0;
while (s > 0)
{
ll k = s % 2;
if (k == 1)
{
pm[ct]++;
if (pm[ct] == 1)
{
ans = ans + (1 << ct);
}
}
s = s / 2;
ct++;
}
j++;
if (ans > r)
{
cnt++;
}
}
ll l = 0;
for (ll i = mid; i < V.size(); i++)
{
for (ll j = 0; j < V[0].size(); j++)
{
ll e = V[l][j];
ll ctt = 0;
while (e > 0)
{
ll k = e % 2;
if (k == 1)
{
mp[j].second[ctt]--;
if (mp[j].second[ctt] == 0)
{
mp[j].first = mp[j].first - (1 << ctt);
}
}
e = e / 2;
ctt++;
}
ll d = V[i][j];
ll ct = 0;
while (d > 0)
{
ll k = d % 2;
if (k == 1)
{
mp[j].second[ct]++;
if (mp[j].second[ct] == 1)
{
mp[j].first = mp[j].first + (1 << ct);
}
}
d = d / 2;
ct++;
}
}
map<ll, ll> pmm;
ans = 0;
for (ll i1 = 0; i1 < mid; i1++)
{
ll s1 = mp[i1].first;
ll ct1 = 0;
while (s1 > 0)
{
ll k1 = s1 % 2;
if (k1 == 1)
{
pmm[ct1]++;
if (pmm[ct1] == 1)
{
ans = ans + (1 << ct1);
}
}
s1 = s1 / 2;
ct1++;
}
}
if (ans > r)
{
cnt++;
}
ll j1 = 0;
for (ll i1 = mid; i1 < V[0].size(); i1++)
{
ll t1 = mp[j1].first;
ll ctt1 = 0;
while (t1 > 0)
{
ll k1 = t1 % 2;
if (k1 == 1)
{
pmm[ctt1]--;
if (pmm[ctt1] == 0)
{
ans = ans - (1 << ctt1);
}
}
ctt1++;
t1 = t1 / 2;
}
ll s1 = mp[i1].first;
ll ct1 = 0;
while (s1 > 0)
{
ll k1 = s1 % 2;
if (k1 == 1)
{
pmm[ct1]++;
if (pmm[ct1] == 1)
{
ans = ans + (1 << ct1);
}
}
s1 = s1 / 2;
ct1++;
}
j1++;
if (ans > r)
{
cnt++;
}
}
l++;
}
return cnt > 0;
}
int main()
{
ll n, m, r;
cin >> n >> m >> r;
vector<vector<ll>> V(n, vector<ll>(m));
for (ll i = 0; i < n; i++)
{
for (ll j = 0; j < m; j++)
{
cin >> V[i][j];
}
}
ll low = 1, high = min(n, m);
while (high - low > 1)
{
ll mid = (low + high) / 2;
if (func(mid, V, r))
{
high = mid;
}
else
{
low = mid + 1;
}
}
if (func(low, V, r))
{
cout << low << endl;
}
else if (func(high, V, r))
{
cout << high << endl;
}
else
{
cout << -1 << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCgpib29sIGZ1bmMobGwgbWlkLCB2ZWN0b3I8dmVjdG9yPGxsPj4gJlYsIGxsIHIpCnsKICAgIG1hcDxsbCwgbGw+IG10OwogICAgbGwgY250ID0gMDsKICAgIHZlY3RvcjxwYWlyPGxsLCBtYXA8bGwsIGxsPj4+IG1wKFZbMF0uc2l6ZSgpLCB7MCwgbXR9KTsKICAgIGZvciAobGwgaSA9IDA7IGkgPCBtaWQ7IGkrKykKICAgIHsKICAgICAgICBmb3IgKGxsIGogPSAwOyBqIDwgVlswXS5zaXplKCk7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGxsIGQgPSBWW2ldW2pdOwogICAgICAgICAgICBsbCBjdCA9IDA7CiAgICAgICAgICAgIHdoaWxlIChkID4gMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbGwgayA9IGQgJSAyOwogICAgICAgICAgICAgICAgaWYgKGsgPT0gMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBtcFtqXS5zZWNvbmRbY3RdKys7CiAgICAgICAgICAgICAgICAgICAgaWYgKG1wW2pdLnNlY29uZFtjdF0gPT0gMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1wW2pdLmZpcnN0ID0gbXBbal0uZmlyc3QgKyAoMSA8PCBjdCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZCA9IGQgLyAyOwogICAgICAgICAgICAgICAgY3QrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIG1hcDxsbCwgbGw+IHBtOwogICAgbGwgYW5zID0gMDsKICAgIGZvciAobGwgaSA9IDA7IGkgPCBtaWQ7IGkrKykKICAgIHsKICAgICAgICBsbCBzID0gbXBbaV0uZmlyc3Q7CiAgICAgICAgbGwgY3QgPSAwOwogICAgICAgIHdoaWxlIChzID4gMCkKICAgICAgICB7CiAgICAgICAgICAgIGxsIGsgPSBzICUgMjsKICAgICAgICAgICAgaWYgKGsgPT0gMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcG1bY3RdKys7CiAgICAgICAgICAgICAgICBpZiAocG1bY3RdID09IDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYW5zID0gYW5zICsgKDEgPDwgY3QpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHMgPSBzIC8gMjsKICAgICAgICAgICAgY3QrKzsKICAgICAgICB9CiAgICB9CiAgICBpZiAoYW5zID4gcikKICAgIHsKICAgICAgICBjbnQrKzsKICAgIH0KCiAgICBsbCBqID0gMDsKICAgIGZvciAobGwgaSA9IG1pZDsgaSA8IFZbMF0uc2l6ZSgpOyBpKyspCiAgICB7CiAgICAgICAgbGwgdCA9IG1wW2pdLmZpcnN0OwogICAgICAgIGxsIGN0dCA9IDA7CiAgICAgICAgd2hpbGUgKHQgPiAwKQogICAgICAgIHsKICAgICAgICAgICAgbGwgayA9IHQgJSAyOwogICAgICAgICAgICBpZiAoayA9PSAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwbVtjdHRdLS07CiAgICAgICAgICAgICAgICBpZiAocG1bY3R0XSA9PSAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGFucyA9IGFucyAtICgxIDw8IGN0dCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3R0Kys7CiAgICAgICAgICAgIHQgPSB0IC8gMjsKICAgICAgICB9CiAgICAgICAgbGwgcyA9IG1wW2ldLmZpcnN0OwogICAgICAgIGxsIGN0ID0gMDsKICAgICAgICB3aGlsZSAocyA+IDApCiAgICAgICAgewogICAgICAgICAgICBsbCBrID0gcyAlIDI7CiAgICAgICAgICAgIGlmIChrID09IDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHBtW2N0XSsrOwogICAgICAgICAgICAgICAgaWYgKHBtW2N0XSA9PSAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGFucyA9IGFucyArICgxIDw8IGN0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBzID0gcyAvIDI7CiAgICAgICAgICAgIGN0Kys7CiAgICAgICAgfQogICAgICAgIGorKzsKICAgICAgICBpZiAoYW5zID4gcikKICAgICAgICB7CiAgICAgICAgICAgIGNudCsrOwogICAgICAgIH0KICAgIH0KICAgIGxsIGwgPSAwOwogICAgZm9yIChsbCBpID0gbWlkOyBpIDwgVi5zaXplKCk7IGkrKykKICAgIHsKICAgICAgICBmb3IgKGxsIGogPSAwOyBqIDwgVlswXS5zaXplKCk7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGxsIGUgPSBWW2xdW2pdOwogICAgICAgICAgICBsbCBjdHQgPSAwOwogICAgICAgICAgICB3aGlsZSAoZSA+IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxsIGsgPSBlICUgMjsKICAgICAgICAgICAgICAgIGlmIChrID09IDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXBbal0uc2Vjb25kW2N0dF0tLTsKICAgICAgICAgICAgICAgICAgICBpZiAobXBbal0uc2Vjb25kW2N0dF0gPT0gMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1wW2pdLmZpcnN0ID0gbXBbal0uZmlyc3QgLSAoMSA8PCBjdHQpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGUgPSBlIC8gMjsKICAgICAgICAgICAgICAgIGN0dCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxsIGQgPSBWW2ldW2pdOwogICAgICAgICAgICBsbCBjdCA9IDA7CiAgICAgICAgICAgIHdoaWxlIChkID4gMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbGwgayA9IGQgJSAyOwogICAgICAgICAgICAgICAgaWYgKGsgPT0gMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBtcFtqXS5zZWNvbmRbY3RdKys7CiAgICAgICAgICAgICAgICAgICAgaWYgKG1wW2pdLnNlY29uZFtjdF0gPT0gMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1wW2pdLmZpcnN0ID0gbXBbal0uZmlyc3QgKyAoMSA8PCBjdCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZCA9IGQgLyAyOwogICAgICAgICAgICAgICAgY3QrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgIAogICAgICAgIG1hcDxsbCwgbGw+IHBtbTsKICAgICAgICBhbnMgPSAwOwogICAgICAgIGZvciAobGwgaTEgPSAwOyBpMSA8IG1pZDsgaTErKykKICAgICAgICB7CiAgICAgICAgICAgIGxsIHMxID0gbXBbaTFdLmZpcnN0OwogICAgICAgICAgICBsbCBjdDEgPSAwOwogICAgICAgICAgICB3aGlsZSAoczEgPiAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBsbCBrMSA9IHMxICUgMjsKICAgICAgICAgICAgICAgIGlmIChrMSA9PSAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHBtbVtjdDFdKys7CiAgICAgICAgICAgICAgICAgICAgaWYgKHBtbVtjdDFdID09IDEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhbnMgPSBhbnMgKyAoMSA8PCBjdDEpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHMxID0gczEgLyAyOwogICAgICAgICAgICAgICAgY3QxKys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGFucyA+IHIpCiAgICAgICAgewogICAgICAgICAgICBjbnQrKzsKICAgICAgICB9CiAgICAgICAgbGwgajEgPSAwOwogICAgICAgIGZvciAobGwgaTEgPSBtaWQ7IGkxIDwgVlswXS5zaXplKCk7IGkxKyspCiAgICAgICAgewogICAgICAgICAgICBsbCB0MSA9IG1wW2oxXS5maXJzdDsKICAgICAgICAgICAgbGwgY3R0MSA9IDA7CiAgICAgICAgICAgIHdoaWxlICh0MSA+IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxsIGsxID0gdDEgJSAyOwogICAgICAgICAgICAgICAgaWYgKGsxID09IDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcG1tW2N0dDFdLS07CiAgICAgICAgICAgICAgICAgICAgaWYgKHBtbVtjdHQxXSA9PSAwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYW5zID0gYW5zIC0gKDEgPDwgY3R0MSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY3R0MSsrOwogICAgICAgICAgICAgICAgdDEgPSB0MSAvIDI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGwgczEgPSBtcFtpMV0uZmlyc3Q7CiAgICAgICAgICAgIGxsIGN0MSA9IDA7CiAgICAgICAgICAgIHdoaWxlIChzMSA+IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxsIGsxID0gczEgJSAyOwogICAgICAgICAgICAgICAgaWYgKGsxID09IDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcG1tW2N0MV0rKzsKICAgICAgICAgICAgICAgICAgICBpZiAocG1tW2N0MV0gPT0gMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFucyA9IGFucyArICgxIDw8IGN0MSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgczEgPSBzMSAvIDI7CiAgICAgICAgICAgICAgICBjdDErKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBqMSsrOwogICAgICAgICAgICBpZiAoYW5zID4gcikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgICAgIGwrKzsKICAgIH0KICAgIHJldHVybiBjbnQgPiAwOwp9CgppbnQgbWFpbigpCnsKICAgIGxsIG4sIG0sIHI7CiAgICBjaW4gPj4gbiA+PiBtID4+IHI7CiAgICB2ZWN0b3I8dmVjdG9yPGxsPj4gVihuLCB2ZWN0b3I8bGw+KG0pKTsKICAgIGZvciAobGwgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgZm9yIChsbCBqID0gMDsgaiA8IG07IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbiA+PiBWW2ldW2pdOwogICAgICAgIH0KICAgIH0KICAgIGxsIGxvdyA9IDEsIGhpZ2ggPSBtaW4obiwgbSk7CiAgICB3aGlsZSAoaGlnaCAtIGxvdyA+IDEpCiAgICB7CiAgICAgICAgbGwgbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKICAgICAgICBpZiAoZnVuYyhtaWQsIFYsIHIpKQogICAgICAgIHsKICAgICAgICAgICAgaGlnaCA9IG1pZDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgbG93ID0gbWlkICsgMTsKICAgICAgICB9CiAgICAgICAKICAgIH0KICAgIGlmIChmdW5jKGxvdywgViwgcikpCiAgICB7CiAgICAgICAgY291dCA8PCBsb3cgPDwgZW5kbDsKICAgIH0KICAgIGVsc2UgaWYgKGZ1bmMoaGlnaCwgViwgcikpCiAgICB7CiAgICAgICAgY291dCA8PCBoaWdoIDw8IGVuZGw7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgY291dCA8PCAtMSA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0=