import java.io.*;
import java.util.*;

public class moon_av implements Runnable {
    public static void main(String[] args) {
        new Thread(new moon_av()).start();
    }

    BufferedReader br;

    StringTokenizer in;

    PrintWriter out;

    public String nextToken() throws IOException {
        while (in == null || !in.hasMoreTokens()) {
            in = new StringTokenizer(br.readLine());
        }

        return in.nextToken();
    }

    public int nextInt() throws IOException {
        return Integer.parseInt(nextToken());
    }

    public long nextLong() throws IOException {
        return Long.parseLong(nextToken());
    }

    public double nextDouble() throws IOException {
        return Double.parseDouble(nextToken());
    }

    int MAXC = 10000;
    int R = 100;
    
    int[][] r;
    
    public int get(int x, int y){
        int w = r.length;
        int h = r[0].length;
        int rl = Math.min(r[x][y], y);
        int rr = Math.min(r[x][y], h - 1 - y);
        
        for (int i = y - 1; i >= y - rl; i--) {
            int px = x + r[x][i];
            int py = i;
            
            int rll = rl;
            while (px * px + py * py < rll){
                rll--;
            }
            if (rll < (y - i)){
                rl = (y - i - 1);
                break;
            }
            rl = rll;
        }
        
        for (int i = y + 1; i <= y + rr; i++) {
            int px = x + r[x][i];
            int py = i;
            
            int rrr = rr;
            while (px * px + py * py < rrr){
                rrr--;
            }
            if (rrr < (i - y)){
                rl = (i - y - 1);
                break;
            }
            
            rr = rrr;
        }
        
        return Math.min(rl, rr);
    } 
    
    public void solve() throws IOException {
        int h = nextInt();
        int w = nextInt();
        
        char[][] map = new char[w][];
        int count = 0;
        for (int i = 0; i < w; i++) {
            map[i] = nextToken().toCharArray();
            for (int j = 0; j < h; j++) {
                if (map[i][j] == '*') count++;
            }
        }
        
        int[][] rup = new int[w][h];
        for (int i = 0; i < h; i++) {
            if (map[0][i] == '*')
                rup[0][i] = 1;
        }
        
        for (int i = 1; i < w; i++) {
            for (int j = 0; j < h; j++) {
                if (map[i][j] == '*'){
                    rup[i][j] = rup[i - 1][j] + 1;
                }
            }
        }
        
        int[][] rdown = new int[w][h];
        for (int i = 0; i < h; i++) {
            if (map[w - 1][i] == '*')
                rdown[w - 1][i] = 1;
        }
        
        for (int i = w - 2; i >= 0; i--) {
            for (int j = 0; j < h; j++) {
                if (map[i][j] == '*'){
                    rdown[i][j] = rdown[i + 1][j] + 1;
                }
            }
        }
        
        r = new int[w][h];
        for (int i = 0; i < w; i++) {
            for (int j = 0; j < h; j++) {
                r[i][j] = Math.min(rup[i][j], rdown[i][j]) - 1;
            }
        }
        
        double cx = 0;
        double cy = 0;
        for (int i = 0; i < w; i++) {
            for (int j = 0; j < h; j++) {
                if (map[i][j] == '*'){
                    cx += 1.0 * i / count;
                    cy += 1.0 * j / count;
                }
            }
        }
        
        if (count < MAXC)
            R = 10000;
        
        int maxR = -1;
        int xm = 0;
        int ym = 0;
        for (int i = Math.max(0, (int)cx - R); i < Math.min(w, (int)cx + R); i++) {
            for (int j = Math.max(0, (int)cy - R); j < Math.min(h, (int)cy + R); j++) {
                if (map[i][j] == '*'){
                    if (maxR < 0){
                        xm = i;
                        ym = j;
                        maxR = 0;
                    }
                    
                    int z = get(i, j);
                    if (maxR < z){
                        xm = i;
                        ym = j;
                        maxR = z;
                    }
                }
            }
        }
        
        out.println(maxR);
        out.println((ym + 1) + " " + (xm + 1));
    }

    public void run() {
        try {
            br = new BufferedReader(new FileReader("moon.in"));
            out = new PrintWriter("moon.out");

            solve();

            out.close();
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(1);
        }
    }
}
