#include <bits/stdc++.h>
using namespace std;
pair<long long, long long> Sum(pair<long long, long long> o1,
                               pair<long long, long long> o2) {
  if (o1.first > o2.first) return o1;
  if (o2.first > o1.first) return o2;
  return make_pair(o1.first, o1.second + o2.second);
}
int n, m, r;
int a[555][555];
int s[555][555];
int value[555][555];
pair<int, long long> m1[555][555], m2[555][555];
int main() {
  int n, m, r;
  scanf("%d%d%d", &n, &m, &r);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      scanf("%d", &a[i][j]);
      s[i][j] = s[i][j - 1] + a[i][j];
    }
  for (int i0 = r + 1; i0 <= n - r; i0++)
    for (int j0 = r + 1; j0 <= m - r; j0++) {
      value[i0][j0] = 0;
      for (int di = 0; di <= r; di++) {
        int dj = (int)sqrt(r * r - di * di + 0.0);
        value[i0][j0] += s[i0 - di][j0 + dj] - s[i0 - di][j0 - dj - 1];
        if (di > 0)
          value[i0][j0] += s[i0 + di][j0 + dj] - s[i0 + di][j0 - dj - 1];
      }
    }
  for (int i = 1; i <= n; i++) {
    m1[i][0] = make_pair(0, 0);
    for (int j = 1; j <= m; j++)
      m1[i][j] = Sum(m1[i][j - 1], make_pair(value[i][j], 1));
    m2[i][m + 1] = make_pair(0, 0);
    for (int j = m; j >= 1; j--)
      m2[i][j] = Sum(m2[i][j + 1], make_pair(value[i][j], 1));
  }
  vector<int> D;
  D.clear();
  for (int di = 0, dj = 2 * r + 1; di <= 2 * r; di++) {
    while (true) {
      dj--;
      bool ok = true;
      for (int mi = max(0, di - r); mi <= min(r, di); mi++) {
        int mj = (int)sqrt(r * r - mi * mi + 0.0);
        if ((dj - mj) * (dj - mj) + (di - mi) * (di - mi) <= r * r) {
          ok = false;
          break;
        }
      }
      if (!ok) {
        dj++;
        break;
      }
    }
    D.push_back(dj);
  }
  pair<int, long long> ret = make_pair(0, 0);
  for (int i0 = r + 1; i0 <= n - r; i0++)
    for (int j0 = r + 1; j0 <= m - r; j0++) {
      pair<int, long long> tret = make_pair(0, 0);
      for (int i = 1; i < i0 - 2 * r; i++) tret = Sum(tret, m1[i][m]);
      for (int i = i0 + 2 * r + 1; i <= n; i++) tret = Sum(tret, m1[i][m]);
      for (int i = max(1, i0 - 2 * r); i <= min(n, i0 + 2 * r); i++) {
        int di = abs(i - i0);
        int dj = D[di];
        if (j0 - dj >= 1) tret = Sum(tret, m1[i][j0 - dj]);
        if (j0 + dj <= m) tret = Sum(tret, m2[i][j0 + dj]);
      }
      if (tret.first > 0) {
        tret = make_pair(tret.first + value[i0][j0], tret.second);
        ret = Sum(ret, tret);
      }
    }
  printf("%d %I64d", ret.first, ret.second / 2);
  return 0;
}
