#include <bits/stdc++.h>
using namespace std;
long long Hash(char* s, int sz) {
  const int p = 31;
  long long hash = 0, p_pow = 1;
  for (size_t i = 0; i < sz; ++i) {
    hash += (s[i] - 'a' + 1) * p_pow;
    p_pow *= p;
  }
  return hash;
}
int gcd(int a, int b) {
  while (b) {
    a %= b;
    swap(a, b);
  }
  return a;
}
bool pole[500][500];
vector<pair<int, pair<int, int>>> ans;
bool comp(pair<int, pair<int, int>> a, pair<int, pair<int, int>> b) {
  if (a.first < b.first) return true;
  if (a.first > b.first) return false;
  if (a.second.first < b.second.first) return true;
  if (a.second.first > b.second.first) return false;
  if (a.second.second < b.second.second) return true;
  return false;
}
int main() {
  int n, m, k;
  scanf("%d %d %d", &n, &m, &k);
  char c;
  for (int i = 0; i < n; i++) {
    scanf("%c", &c);
    for (int j = 0; j < m; j++) {
      scanf("%c", &c);
      if (c == '*')
        pole[i][j] = true;
      else
        pole[i][j] = false;
    }
  }
  int fd = 0;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) {
      if (pole[i][j]) {
        int d1 = min(i, n - i - 1);
        int d2 = min(j, m - j - 1);
        for (int x = 0; x < min(d1, d2) + 1; x++) {
          if (x == 0) continue;
          if (pole[i][j + x] && pole[i][j - x] && pole[i + x][j] &&
              pole[i - x][j]) {
            ans.push_back(make_pair(x, make_pair(i, j)));
          }
        }
      }
    }
  sort(ans.begin(), ans.end(), comp);
  k--;
  if (ans.size() <= k)
    printf("-1");
  else {
    int x = ans[k].second.first + 1;
    int y = ans[k].second.second + 1;
    int r = ans[k].first;
    printf("%d %d\n", x, y);
    printf("%d %d\n", x - r, y);
    printf("%d %d\n", x + r, y);
    printf("%d %d\n", x, y - r);
    printf("%d %d\n", x, y + r);
  }
  return 0;
}
