/*
* @Description: To iterate is human, to recurse divine.
* @Autor: Recursion
* @Date: 2022-05-25 18:21:03
* @LastEditTime: 2022-05-25 20:53:11
*/
#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn = 1e6 + 10;
const int mod = 1e9 + 7;
const int INF = 1e9 + 10;
const int N = 1e4+7;
int a[N][N];
int b[N][N];
int n,m,k;
int main()
{
cin >> n >> m >> k;
for(int i = 1;i <= n;i ++)
for(int j = 1;j <= m;j ++)
cin >> a[i][j];
for(int i = 1;i <= n;i ++)
for(int j = 1;j <= m;j ++)
b[i][j] = b[i - 1][j] + b[i][j - 1] + a[i][j] - b[i - 1][j - 1];
// for(int i = 1;i <= n;i ++){
// for(int j = 1;j <= m;j ++)
// cout << b[i][j] << " ";
// cout << endl;
// }
//双指针优化
int count = 0;
int ans = 0;
for(int l = 1;l <= m;l ++)
for(int r = l;r <= m;r ++)
for(int i = 1,j = 1;i <= n;i++){
while(j <= i&&(b[i][r] - b[i][l - 1] - b[j - 1][r] + b[j - 1][l - 1]) > k){
count++;
j++;
}
if (j <= i) ans += i - j + 1;
}
cout << ans << endl;
return 0;
}