#include <bits/stdc++.h>
using namespace std;
const int MAXN = 302;
string ma[MAXN];
struct st {
  int y, x, r;
};
bool in_bond(int i, int j, int n, int m, int rad) {
  if (i - rad < 0 || i + rad > n - 1) {
    return false;
  }
  if (j - rad < 0 || j + rad > m - 1) {
    return false;
  }
  return true;
}
int main() {
  int n, m, k, cnt = 0;
  cin >> n >> m >> k;
  int r = n;
  getchar();
  while (r--) {
    getline(cin, ma[cnt++]);
  }
  vector<st> v;
  for (int i = 1; i < n - 1; i++) {
    for (int j = 1; j < m - 1; j++) {
      if (ma[i][j] != '*') {
        continue;
      }
      int rad = 1;
      if (!in_bond(i, j, n, m, rad)) {
        continue;
      }
      while (1) {
        if (!in_bond(i, j, n, m, rad)) {
          break;
        }
        int arr1[] = {i - rad, i + rad, i, i};
        int arr2[] = {j, j, j - rad, j + rad};
        bool p = true;
        for (int kk = 0; kk < 4; kk++) {
          if (ma[arr1[kk]][arr2[kk]] != '*') {
            p = false;
            break;
          }
        }
        if (p) {
          v.push_back({i, j, rad});
        }
        rad++;
      }
    }
  }
  if (v.size() < k) {
    cout << -1 << endl;
    return 0;
  }
  sort(v.begin(), v.end(), [](const st& st1, const st& st2) {
    if (st1.r < st2.r) {
      return true;
    } else if (st1.r == st2.r) {
      if (st1.y < st2.y) {
        return true;
      } else if (st1.y == st2.y) {
        return st1.x < st2.x;
      }
    }
    return false;
  });
  st star = v[k - 1];
  st arra[] = {{star.y, star.x},
               {
                   star.y - star.r,
                   star.x,
               },
               {star.y + star.r, star.x},
               {star.y, star.x - star.r},
               {star.y, star.x + star.r}};
  for (int i = 0; i < 5; i++) {
    cout << arra[i].y + 1 << " " << arra[i].x + 1 << endl;
  }
  return 0;
}
