 /*
* Author: Geeza
*/


#include <bits/stdc++.h>

#define ld long double
#define ll long long
#define pb push_back
#define fin(a, n) for(int i = a; i < n; i++)
#define fjn(a, n) for(int j = a; j < n; j++)
#define all(a) a.begin(),a.end()
#define allr(a) a.rbegin(),a.rend()
#define FAST ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)

using namespace std;

const double PI = acos(-1);
const int N = 1e5 + 10, M = 1e3 + 10, LOG = 20;
const ll oo = 0x3f3f3f3f3f3f3f3f;
const int mod = 998244353, inf = 1e6;
const ld EPS = 1e-9;

string di[] = {"D", "L", "U", "R", "UL", "UR", "DL", "DR"};
int dx[] = {+1, +0, +0, -1, -1, -1, +1, +1};
int dy[] = {+0, -1, +1, +0, -1, +1, -1, +1};
char dc[] = {'D', 'L', 'R', 'U'};

void solve() {
    ll n, m; cin >> n >> m;
    vector<string> v(n);
    fin(0, n) cin >> v[i];

    auto valid = [&](int x, int y) {
        return x >= 0 && x < n && y >= 0 && y < m;
    };

    string ok = "snuke";

    auto hor = [&](int x, int y) {
        string s = "";
        for (int i = 0; i < 5; i++) {
            int ny = y + i;
            if (valid(x, ny)) {
                s += v[x][ny];
                continue;
            }
            return false;
        }
        return s == ok;
    };

    auto hor_rev = [&](int x, int y) {
        string s = "";
        for (int i = 0; i < 5; i++) {
            int ny = y - i;
            if (valid(x, ny)) {
                s += v[x][ny];
                continue;
            }
            return false;
        }
        return s == ok;
    };

    auto ver = [&](int x, int y) {
        string s = "";
        for (int i = 0; i < 5; i++) {
            int nx = x + i;
            if (valid(nx, y)) {
                s += v[nx][y];
                continue;
            }
            return false;
        }
        return s == ok;
    };

    auto verRev = [&](int x, int y) {
        string s = "";
        for (int i = 0; i < 5; i++) {
            int nx = x - i;
            if (valid(nx, y)) {
                s += v[nx][y];
                continue;
            }
            return false;
        }
        return s == ok;
    };

    auto diag = [&](int x, int y) {
        string s = "";
        for (int i = 0; i < 5; i++) {
            int nx = x + i, ny = y + i;
            if (valid(nx, ny)) {
                s += v[nx][ny];
                continue;
            }
            return false;
        }
        return s == ok;
    };

    auto diagRev = [&](int x, int y) {
        string s = "";
        for (int i = 0; i < 5; i++) {
            int nx = x - i, ny = y - i;
            if (valid(nx, ny)) {
                s += v[nx][ny];
                continue;
            }
            return false;
        }
        return s == ok;
    };

    auto diagUR = [&](int x, int y) {
        string s = "";
        for (int i = 0; i < 5; i++) {
            int nx = x - i, ny = y + i;
            if (valid(nx, ny)) {
                s += v[nx][ny];
                continue;
            }
            return false;
        }
        return s == ok;
    };

    auto diagDL = [&](int x, int y) {
        string s = "";
        for (int i = 0; i < 5; i++) {
            int nx = x + i, ny = y - i;
            if (valid(nx, ny)) {
                s += v[nx][ny];
                continue;
            }
            return false;
        }
        return s == ok;
    };

    fin(0, n) {
        fjn(0, m) {

            if (hor(i, j)) {
                for (int k = 0; k < 5; k++) {
                    int ny = j + k;
                    cout << i + 1 << " " << ny + 1 << "\n";
                }
                return;
            }

            if (hor_rev(i, j)) {
                for (int k = 0; k < 5; k++) {
                    int ny = j - k;
                    cout << i + 1 << " " << ny + 1 << "\n";
                }
                return;
            }

            if (ver(i, j)) {
                for (int k = 0; k < 5; k++) {
                    int nx = i + k;
                    cout << nx + 1 << " " << j + 1 << "\n";
                }
                return;
            }

            if (verRev(i, j)) {
                for (int k = 0; k < 5; k++) {
                    int nx = i - k;
                    cout << nx + 1 << " " << j + 1 << "\n";
                }
                return;
            }

            if (diag(i, j)) {
                for (int k = 0; k < 5; k++) {
                    int nx = i + k, ny = j + k;
                    cout << nx + 1 << " " << ny + 1 << "\n";
                }
                return;
            }

            if (diagRev(i, j)) {
                for (int k = 0; k < 5; k++) {
                    int nx = i - k, ny = j - k;
                    cout << nx + 1 << " " << ny + 1 << "\n";
                }
                return;
            }

            if (diagUR(i, j)) {
                for (int k = 0; k < 5; k++) {
                    int nx = i - k, ny = j + k;
                    cout << nx + 1 << " " << ny + 1 << "\n";
                }
                return;
            }

            if (diagDL(i, j)) {
                for (int k = 0; k < 5; k++) {
                    int nx = i + k, ny = j - k;
                    cout << nx + 1 << " " << ny + 1 << "\n";
                }
                return;
            }
        }
    }
}

int main() {
    FAST;
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r",stdin);
    freopen("output.txt", "w",stdout);
#endif
    int tt = 1, c = 1; //cin >> tt;
    while (tt--) {
        // cout << "Case " << c++ << ":\n";
        solve();
    }
    return 0;
}
