#include <bits/stdc++.h>
using namespace std;
template <class T>
inline T __gcd(T a, T b) {
  if (!b)
    return a;
  else
    return __gcd(b, a % b);
}
template <class T>
void b_sort(vector<T>& VT) {
  for (int i = VT.sz; i > 0; i--)
    for (int j = 1; j < i; j++)
      if (VT[j] < VT[j - 1]) swap(VT[j], VT[j - 1]);
}
template <class T>
inline T sqr(T x) {
  return x * x;
}
template <class T>
inline bool isprime(T n) {
  if (n <= 1) return false;
  for (T i = 2; i * i <= n; i++)
    if (n % i == 0) return false;
  return true;
}
template <class T>
inline T mod(T n, T m) {
  return (n % m + m) % m;
}
template <class T>
string tostring(T n) {
  ostringstream oss;
  oss << n;
  oss.flush();
  return oss.str();
}
int toint(string s) {
  int r = 0;
  istringstream sin(s);
  sin >> r;
  return r;
}
long long toll(string s) {
  long long r = 0;
  istringstream sin(s);
  sin >> r;
  return r;
}
template <class T>
void debug(const T& e) {
  cout << e << endl;
}
template <class T1, class T2>
void debug(const T1& e1, const T2& e2) {
  cout << e1 << "\t" << e2 << endl;
}
template <class T1, class T2, class T3>
void debug(const T1& e1, const T2& e2, const T3& e3) {
  cout << e1 << "\t" << e2 << "\t" << e3 << endl;
}
template <class T1, class T2, class T3, class T4>
void debug(const T1& e1, const T2& e2, const T3& e3, const T4& e4) {
  cout << e1 << "\t" << e2 << "\t" << e3 << "\t" << e4 << endl;
}
template <class T1, class T2, class T3, class T4, class T5>
void debug(const T1& e1, const T2& e2, const T3& e3, const T4& e4,
           const T5& e5) {
  cout << e1 << "\t" << e2 << "\t" << e3 << "\t" << e4 << "\t" << e5 << endl;
}
template <class T>
void debug(vector<T>& e) {
  int i;
  for (i = 0; i < (int)e.size(); i++) cout << e[i] << " ";
  cout << endl;
}
template <class T>
void debug(vector<basic_string<T> >& e) {
  int i, j;
  for (i = 0; i < (int)e.size(); i++) {
    for (j = 0; j < (int)e[i].size(); j++) cout << e[i][j];
    cout << endl;
  }
  cout << endl;
}
template <class T>
void debug(vector<vector<T> >& e, int row, int col) {
  int i, j;
  for (i = 0; i < row; i++) {
    for (j = 0; j < col; j++) cout << e[i][j] << "\t";
    cout << endl;
  }
  cout << endl;
}
template <class T>
void debug(T e[100][100], int row, int col) {
  int i, j;
  for (i = 0; i < row; i++) {
    for (j = 0; j < col; j++) cout << e[i][j] << " ";
    cout << endl;
  }
}
inline bool iseq(double x, double y) {
  if (fabs(x - y) < 1e-9) return true;
  return false;
}
template <typename T>
inline T bigmod(T b, T p, T m) {
  if (!p)
    return 1;
  else if (!(p % 2)) {
    T x = bigmod(b, p / 2, m);
    return x * x;
  } else
    return ((b % m) * bigmod(b, p - 1, m)) % m;
}
long long Pow(long long B, long long P) {
  long long R = 1;
  while (P > 0) {
    if (P % 2 == 1) R = (R * B);
    P /= 2;
    B = (B * B);
  }
  return R;
}
int n, m;
char s[512][512];
int main() {
  int k, i, j;
  scanf("%d %d %d", &n, &m, &k);
  for (i = 0; i < n; i++) {
    scanf("%s", s[i]);
    for (j = 0; j < m; j++) s[i][j] = (s[i][j] == '*');
  }
  int cnt = 0;
  for (int d = 1; d * 2 + 1 <= min(m, m); d++) {
    for (int i = d; i + d < n; i++)
      for (int j = d; j + d < m; j++) {
        if (s[i][j] && s[i][j - d] && s[i][j + d] && s[i - d][j] &&
            s[i + d][j]) {
          cnt++;
          if (cnt == k) {
            printf("%d %d\n", 1 + i, 1 + j);
            printf("%d %d\n", 1 + i - d, 1 + j);
            printf("%d %d\n", 1 + i + d, 1 + j);
            printf("%d %d\n", 1 + i, 1 + j - d);
            printf("%d %d\n", 1 + i, 1 + j + d);
            return 0;
          }
        }
      }
  }
  printf("-1\n");
  return 0;
}
