Problem: You've got a table of size n × m. On the intersection of the i-th row (1 ≤ i ≤ n) and the j-th column (1 ≤ j ≤ m) there is a non-negative integer ai, j. Besides, you've got a non-negative integer k.

Your task is to find such pair of integers (a, b) that meets these conditions: 

  * k ≤ a ≤ n - k + 1; 
  * k ≤ b ≤ m - k + 1; 
  * let's denote the maximum of the function <image> among all integers x and y, that satisfy the inequalities k ≤ x ≤ n - k + 1 and k ≤ y ≤ m - k + 1, as mval; for the required pair of numbers the following equation must hold f(a, b) = mval. 

Input

The first line contains three space-separated integers n, m and k (1 ≤ n, m ≤ 1000, <image>). Next n lines each contains m integers: the j-th number on the i-th line equals ai, j (0 ≤ ai, j ≤ 106).

The numbers in the lines are separated by spaces.

Output

Print the required pair of integers a and b. Separate the numbers by a space.

If there are multiple correct answers, you are allowed to print any of them.

Examples

Input

4 4 2
1 2 3 4
1 1 1 1
2 2 2 2
4 3 2 1


Output

3 2


Input

5 7 3
8 2 3 4 2 3 3
3 4 6 2 3 4 6
8 7 6 8 4 5 7
1 2 3 2 1 3 2
4 5 3 2 1 2 1


Output

3 3

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
const long long maxn = 1005, maxm = 1005;
long long n, m, k;
long long a[maxn][maxm], b[maxn][maxm], c[maxn][maxm];
long long s1[maxn][maxm], s2[maxn][maxm], s3[maxn][maxm], s4[maxn][maxm];
long long c1[maxn][maxm], c2[maxn][maxm], c3[maxn][maxm], c4[maxn][maxm];
long long f[maxn][maxm];
long long read() {
  long long x = 0, y = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') y = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9')
    x = (x << 3) + (x << 1) + (ch ^ 48), ch = getchar();
  return x * y;
}
void solve(long long p[maxn][maxm]) {
  memset(s1, 0, sizeof(s1));
  memset(s2, 0, sizeof(s2));
  memset(s3, 0, sizeof(s3));
  memset(s4, 0, sizeof(s4));
  memset(c1, 0, sizeof(c1));
  memset(c2, 0, sizeof(c2));
  memset(c3, 0, sizeof(c3));
  memset(c4, 0, sizeof(c4));
  for (long long i = 1; i <= n; i++) {
    for (long long j = 1; j <= m; j++) {
      s1[i][j] = s1[i - 1][j] + p[i][j] - (i > k ? p[i - k][j] : 0);
      s2[i][j] = s2[i][j - 1] + p[i][j] - (j > k ? p[i][j - k] : 0);
      s3[i][j] = s3[i - 1][j + 1] + p[i][j] -
                 (i > k && j <= m - k ? p[i - k][j + k] : 0);
      s4[i][j] =
          s4[i - 1][j - 1] + p[i][j] - (i > k && j > k ? p[i - k][j - k] : 0);
    }
  }
  c1[k][k] = 0;
  for (long long i = 1; i <= k; i++)
    for (long long j = k - i + 1; j <= k; j++) c1[k][k] += p[i][j];
  c2[k][k] = 0;
  for (long long i = 1; i <= k; i++)
    for (long long j = k; j <= k + i - 1; j++) c2[k][k] += p[i][j];
  c3[k][k] = 0;
  for (long long i = k; i <= 2 * k - 1; i++)
    for (long long j = i - k + 1; j <= k; j++) c3[k][k] += p[i][j];
  c4[k][k] = 0;
  for (long long i = k; i <= 2 * k - 1; i++)
    for (long long j = k; j <= 3 * k - i - 1; j++) c4[k][k] += p[i][j];
  for (long long i = k; i <= n - k + 1; i++) {
    if (i > k) {
      c1[i][k] = c1[i - 1][k] + s2[i][k] - s3[i - 1][1];
      c2[i][k] = c2[i - 1][k] + s2[i][2 * k - 1] - s4[i - 1][2 * k - 1];
      c3[i][k] = c3[i - 1][k] + s4[i + k - 1][k] - s2[i - 1][k];
      c4[i][k] = c4[i - 1][k] + s3[i + k - 1][k] - s2[i - 1][2 * k - 1];
    }
    for (long long j = k + 1; j <= m - k + 1; j++) {
      c1[i][j] = c1[i][j - 1] + s1[i][j] - s3[i][j - k];
      c2[i][j] = c2[i][j - 1] + s4[i][j + k - 1] - s1[i][j - 1];
      c3[i][j] = c3[i][j - 1] + s1[i + k - 1][j] - s4[i + k - 1][j - 1];
      c4[i][j] = c4[i][j - 1] + s3[i + k - 1][j] - s1[i + k - 1][j - 1];
    }
  }
  return;
}
signed main() {
  n = read();
  m = read();
  k = read();
  for (long long i = 1; i <= n; i++)
    for (long long j = 1; j <= m; j++) {
      a[i][j] = read();
      b[i][j] = 1ll * i * a[i][j];
      c[i][j] = 1ll * j * a[i][j];
    }
  solve(a);
  for (long long i = k; i <= n - k + 1; i++) {
    for (long long j = k; j <= m - k + 1; j++) {
      long long v1 = -i - j, v2 = -i + j, v3 = i - j, v4 = i + j;
      f[i][j] += 1ll * k *
                 (c1[i][j] + c2[i][j] + c3[i][j] + c4[i][j] - s1[i][j] -
                  s2[i][j + k - 1] - s2[i][j] - s1[i + k - 1][j] + a[i][j]);
      f[i][j] += v1 * c1[i][j] + v2 * c2[i][j] + v3 * c3[i][j] + v4 * c4[i][j];
      f[i][j] -= v1 * s1[i][j] + v2 * s2[i][j + k - 1] + v3 * s2[i][j] +
                 v4 * s1[i + k - 1][j];
      f[i][j] += v1 * a[i][j];
    }
  }
  solve(b);
  for (long long i = k; i <= n - k + 1; i++) {
    for (long long j = k; j <= m - k + 1; j++) {
      long long v1 = 1, v2 = 1, v3 = -1, v4 = -1;
      f[i][j] += v1 * c1[i][j] + v2 * c2[i][j] + v3 * c3[i][j] + v4 * c4[i][j];
      f[i][j] -= v1 * s1[i][j] + v2 * s2[i][j + k - 1] + v3 * s2[i][j] +
                 v4 * s1[i + k - 1][j];
      f[i][j] += v1 * b[i][j];
    }
  }
  solve(c);
  long long sum = -1, x, y;
  for (long long i = k; i <= n - k + 1; i++) {
    for (long long j = k; j <= m - k + 1; j++) {
      long long v1 = 1, v2 = -1, v3 = 1, v4 = -1;
      f[i][j] += v1 * c1[i][j] + v2 * c2[i][j] + v3 * c3[i][j] + v4 * c4[i][j];
      f[i][j] -= v1 * s1[i][j] + v2 * s2[i][j + k - 1] + v3 * s2[i][j] +
                 v4 * s1[i + k - 1][j];
      f[i][j] += v1 * c[i][j];
      if (f[i][j] > sum) x = i, y = j, sum = f[i][j];
    }
  }
  printf("%lld %lld\n", x, y);
  return 0;
}