#include <bits/stdc++.h>
using namespace std;
void _fill_int(int* p, int val, int rep) {
  int i;
  for (i = 0; i < rep; i++) p[i] = val;
}
int GETi() {
  int i;
  scanf("%d", &i);
  return i;
}
template <class T>
T sqr(T val) {
  return val * val;
}
int H, W, K;
signed long long val[1001][1001];
signed long long le[1001][1001];
signed long long ri[1001][1001];
signed long long up[1001][1001];
signed long long sc[1001][1001];
void solve() {
  int f, r, i, j, k, l, cur, tar, ret, loop;
  int x, y, mx, my;
  scanf("%d%d%d", &H, &W, &K);
  ;
  for (y = 0; y < H; y++)
    for (x = 0; x < W; x++) val[x][y] = GETi();
  for (y = 0; y < H; y++)
    for (x = 0; x < W; x++) {
      le[x][y] = ri[x][y] = up[x][y] = val[x][y];
      if (y >= 1) {
        if (x >= 1) {
          le[x][y] += le[x - 1][y - 1];
          up[x][y] += le[x - 1][y - 1];
        }
        if (x < W - 1) {
          ri[x][y] += ri[x + 1][y - 1];
          up[x][y] += ri[x + 1][y - 1];
        }
        up[x][y] += up[x][y - 1];
      }
    }
  K--;
  signed long long ma = -1;
  for (y = K; y < H - K; y++)
    for (x = K; x < W - K; x++) {
      for (i = 0; i <= K; i++) {
        signed long long tsc = up[x][y + i];
        if (y > 0) {
          tsc -= up[x + i][y - 1] + up[x - i][y - 1];
          if (x - i - 1 >= 0) tsc -= le[x - i - 1][y - 1];
          if (x + i + 1 < W) tsc -= ri[x + i + 1][y - 1];
        }
        if (y > i) tsc += up[x][y - i - 1];
        sc[x][y] += tsc;
      }
      if (sc[x][y] > ma) {
        ma = sc[x][y];
        mx = x;
        my = y;
      }
    }
  printf("%d %d\n", my + 1, mx + 1);
  return;
}
int main(int argc, char** argv) {
  if (argc > 1) freopen(argv[1], "r", stdin);
  solve();
  return 0;
}
