#include <bits/stdc++.h>
using namespace std;
const int maxn = 120;
int n, m, K, A[maxn][maxn];
int dp[maxn][2] = {0}, ans = 0x7fffffff;
int main() {
  int i, j, k;
  scanf("%d%d%d", &n, &m, &K);
  for (i = 0; i < n; i++)
    for (j = 0; j < m; j++) scanf("%d", &A[i][j]);
  if (n < m) {
    int A0[maxn][maxn];
    for (i = 0; i < n; i++)
      for (j = 0; j < m; j++) A0[j][i] = A[i][j];
    swap(n, m);
    for (i = 0; i < n; i++)
      for (j = 0; j < m; j++) A[i][j] = A0[i][j];
  }
  if (m <= 10) {
    for (i = 0; i < (1 << m); i++) {
      int ans0 = 0;
      for (j = 0; j < n; j++) {
        int s1 = 0, s2 = 0;
        for (k = 0; k < m; k++)
          if (A[j][k] != ((i >> k) & 1))
            s1++;
          else
            s2++;
        ans0 += min(s1, s2);
      }
      ans = min(ans, ans0);
    }
  } else
    for (i = 0; i < n; i++) {
      int ans0 = 0;
      for (j = 0; j < n; j++) {
        int s1 = 0, s2 = 0;
        for (k = 0; k < m; k++)
          if (A[j][k] != A[i][k])
            s1++;
          else
            s2++;
        ans0 += min(s1, s2);
      }
      ans = min(ans, ans0);
    }
  printf("%d\n", ans > K ? -1 : ans);
  return 0;
}
