// Arup Guha
// 6/8/2026
// Solution to Kattis Problem: Hakkari
// https://open.kattis.com/problems/hakkari

using namespace std;
#include <bits/stdc++.h>

int numStars(string& s);
void solve(vector<vector<char>>& grid);

int main() {

    int r, c;
    cin >> r >> c;

    // Read in the grid. Note we could do vector<string> but just wanted to
    // explicitly show a vector of vector.
    int numM = 0;
    vector<vector<char>> grid(r);
    for (int i=0; i<r; i++) {
        string s;
        cin >> s;
        numM += numStars(s);
        for (int j=0; j<c; j++)
            grid[i].push_back(s[j]);
    }

    // Number of mines.
    cout << numM << endl;

    // Solve it!
    solve(grid);

    return 0;
}

// Returns the number of stars s.
int numStars(string& s) {

    // Go through the string add 1 when we see '*'
    int res = 0;
    for (int i=0; i<s.size(); i++)
        if (s[i] == '*')
            res++;

    return res;
}

// Outputs the solution locations for this grid.
void solve(vector<vector<char>>& grid) {

    // Go through each square.
    for (int i=0; i<grid.size(); i++) {
        for (int j=0; j<grid[i].size(); j++) {

            // Print location if it's a star, 1-based.
            if (grid[i][j] =='*')
                cout << (i+1) << " " << j+1 << endl;
        }
    }
}
