#define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; const ld epsylon = 1e-9; typedef unsigned int ui; inline long double get_time(){ return (long double)clock()/CLOCKS_PER_SEC; }; int n, m, k; int A[24][24]; int findarea(int ii, int jj, int i, int j) { int rz = 0; for (int a = ii; a <= ii+i-1; ++a) for (int b = jj; b <= jj+j-1; ++b) rz += A[a][b]; return rz; } int main() { freopen("minark.in","r",stdin); freopen("minark.out","w",stdout); //program scanf("%d %d %d", &n, &m, &k); for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) scanf("%d", &A[i][j]); int res = 1; int rez = 1000000000; bool flag = 0; for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { res = i*j; for (int ii = 1; ii <= n-i+1; ++ii) { for (int jj = 1; jj <= m-j+1; ++jj) { if (findarea(ii, jj, i, j) >=k) { flag = 1; rez = min(res, rez); } } } } } found: if (flag) printf("%d\n", rez); else printf("-1\n"); //end program return 0; }