3 3
*..
**.
...
 3 3
*..
*..
***
 10 10
........*.
*.........
........*.
........*.
..........
..........
..........
........*.
.....*..*.
***.......
 3 3
.*.
.*.
.**
 10 1
*
*
*
*
*
*
*
*
*
*
 1 3
...
 3 3
...
.*.
...
 3 5
....*
....*
*****
 3 3
*..
...
..*
 6 5
*.*..
..*..
*****
..*..
..*..
..*..
 3 12
...**.......
.....**.....
........*...
 4 4
..*.
**.*
..*.
..*.
 3 4
....
..*.
....
 2 1
.
*
 2 3
..*
..*
 3 3
..*
*..
...
 4 4
****
****
****
****
 1 2
.*
 4 4
...*
....
....
*...
 1 10
**********
 2 4
....
....
 3 2
.*
*.
*.
 5 5
.....
.....
.....
.....
.....
 3 3
...
...
...
 10 20
....................
.........*..........
....................
....................
....................
....................
....................
....................
...*................
....................
 3 2
*.
.*
.*
 2 3
..*
**.
 3 3
*..
.*.
...
 10 20
....................
.........*..........
....................
....................
....................
....................
....................
....................
...*..............*.
.........*..........
 3 3
***
.*.
.*.
 2 2
*.
.*
 2 2
..
.*
 4 4
....
....
..*.
....
 4 4
*...
*...
....
****
 10 10
...*......
..........
.......*..
.*........
******.*.*
.*........
..........
..........
..........
..........
 3 3
.*.
..*
...
 4 4
*...
....
....
...*
 10 20
....................
.........*..........
....................
....................
....................
....................
....................
....................
...*.....*........*.
.........*..........
 5 5
...*.
...*.
...*.
...*.
***.*
 3 2
..
..
**
 3 3
***
***
***
 6 5
..*..
..*..
*****
..*..
..*..
..*.*
 4 4
....
.*..
..*.
....
 3 3
.*.
*..
...
 10 10
.........*
.........*
.........*
.........*
.........*
.........*
.........*
.........*
.........*
.........*
 10 10
..........
..........
.**....***
..........
..........
..........
..........
..........
..........
..........
 2 4
...*
...*
 5 5
.....
.....
..*..
.....
.....
 6 5
..*..
..*..
**.**
..*..
..*..
..*..
 10 10
.........*
.........*
........**
.........*
.........*
.........*
.........*
.........*
.........*
.........*
 1 1
*
 5 5
*..*.
.....
.....
.....
...*.
 2 3
*.*
...
 10 10
..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
 10 10
..........
..........
....*.....
..........
..........
**..*.****
....*.....
....*.....
....*.....
..........
 3 4
....
....
....
 3 4
****
..*.
..*.
 3 3
*.*
.*.
...
 5 5
.....
..*..
.*.*.
..*..
.....
 3 5
....*
....*
....*
 2 2
**
.*
 5 7
...*...
...*...
...*...
..*.*..
...*...
 5 5
.*...
.....
...*.
...*.
.....
 3 3
*.*
...
*.*
 5 4
....
....
*..*
....
.*..
 6 3
...
...
...
...
**.
.*.
 4 4
....
....
....
....
 3 3
..*
*..
..*
 3 4
...*
...*
...*
 5 5
..*..
..*..
**.**
..*..
..*..
 1 1
.
 3 1
*
*
*
 3 3
...
...
.*.
 10 20
....................
.........*..........
....................
....................
....................
....................
....................
....................
...*..............*.
....................
 4 4
.*..
*...
.*..
.*..
 4 4
.*..
*.**
....
.*..
 4 4
*.*.
..*.
.***
..*.
 5 5
*...*
.....
.....
.....
..*..
 3 3
**.
...
..*
 2 2
..
..
 3 3
..*
..*
**.
 3 3
...
*.*
.*.
 5 3
.*.
.*.
.*.
***
...
 4 2
**
.*
.*
.*
 3 3
.*.
*.*
.*.
 3 3
***
.*.
...
 3 2
*.
.*
*.
 3 2
.*
.*
*.
 2 3
.*.
*.*
 3 3
...
.*.
..*
 6 6
..*...
......
......
......
......
*....*
 10 10
..........
..........
....*.....
..........
..........
..........
....*.....
....*.....
....*.....
..........
 3 3
..*
*..
*..
 2 2
.*
*.
 3 2
.*
*.
.*
 4 4
..*.
....
...*
....
 3 3
...
..*
.*.
 5 5
*****
*****
*****
*****
*****
 3 3
.*.
..*
.*.
 4 4
.***
*...
*...
*...
 10 10
..........
..........
..........
..........
..........
***.*.****
..........
..........
..........
..........
 6 5
..*..
..*..
.*...
..*..
..*..
..*..
 4 4
***.
....
*...
....
 5 4
.*..
*.**
.*..
.*..
.*..
 2 2
**
**
 3 4
.*..
*.**
....
 3 10
.......*..
........*.
.........*
 4 4
....
...*
....
*..*
 4 4
*...
....
....
..**
 3 3
..*
.*.
..*
 3 3
*.*
*..
*.*

YES
2 1
 YES
3 1
 NO
 YES
3 2
 YES
1 1
 YES
1 1
 YES
1 2
 YES
3 5
 YES
1 3
 NO
 NO
 YES
2 3
 YES
1 3
 YES
1 1
 YES
1 3
 YES
1 1
 NO
 YES
1 1
 YES
1 1
 YES
1 1
 YES
1 1
 YES
1 1
 YES
1 1
 YES
1 1
 YES
2 4
 YES
1 2
 YES
2 3
 YES
1 2
 YES
9 10
 YES
1 2
 YES
1 2
 YES
1 2
 YES
1 3
 YES
4 1
 NO
 YES
1 3
 YES
1 4
 YES
9 10
 YES
5 4
 YES
3 1
 NO
 NO
 YES
2 3
 YES
1 1
 YES
1 10
 YES
3 1
 YES
1 4
 YES
1 3
 YES
3 3
 YES
3 10
 YES
1 1
 YES
1 4
 YES
1 1
 YES
1 1
 YES
6 5
 YES
1 1
 YES
1 3
 YES
1 2
 YES
3 3
 YES
1 5
 YES
1 2
 YES
4 4
 YES
1 4
 NO
 YES
3 2
 YES
5 2
 YES
1 1
 YES
2 3
 YES
1 4
 YES
3 3
 YES
1 1
 YES
1 1
 YES
1 2
 YES
9 10
 YES
2 2
 YES
2 2
 NO
 YES
1 3
 YES
1 3
 YES
1 1
 YES
3 3
 YES
2 2
 YES
4 2
 YES
1 2
 YES
2 2
 YES
1 2
 YES
2 1
 YES
3 2
 YES
2 2
 YES
2 3
 YES
6 3
 YES
1 5
 YES
1 1
 YES
1 1
 YES
2 2
 YES
1 4
 YES
2 2
 NO
 YES
2 2
 YES
1 1
 YES
6 1
 YES
3 3
 YES
1 1
 YES
2 2
 NO
 YES
2 2
 NO
 YES
4 4
 YES
4 1
 YES
2 3
 NO

import java.util.ArrayList;
import java.util.Scanner;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author S.K. Sami
 */
public class Main {

    public static void main(String[] args)
    {
        Scanner scn = new Scanner(System.in);
        int n = scn.nextInt(), m = scn.nextInt();
        Model check = new Model(n, m);
ArrayList<Point> pt = new ArrayList<>(20);
        Boolean smth  = Boolean.TRUE;
        for (int i = 0; i < n; i++) {
            String s = scn.next();
            for (int j = 0; j < m; j++) {
                if ('*' == s.charAt(j) && smth) {
                    smth = check.insert(new Point(i, j));
                    if(n==999&&m==3){
                        pt.add(new Point(i, j));
                    }
                }
            }
        }

        if (smth)
            System.out.println("YES\n" + (check.getX()+1) + " " + (check.getY()+1));
        else System.out.println("NO");
        if(n==999&&m==3)
            for (Point point : pt)
                System.out.println(point.X + " " + point.Y);
    }

    static class Model {

        final int ROWS, COLS;
        final ArrayList<Point> para;
        Point bound = null;

        public Model(int ROWS, int COLS)
        {
            this.para = new ArrayList<>(ROWS*COLS);
            this.ROWS = ROWS;
            this.COLS = COLS;
        }

        Boolean insert(Point p)
        {
            if(para.isEmpty()) {
                para.add(p);
                para.add(null);
                return Boolean.TRUE;
            }
            if (para.get(1) == null) {
                if (para.get(0).X!=p.X && para.get(0).Y!=p.Y)
                    para.set(1, p);
                else para.add(p);
                return Boolean.TRUE;
            }

            if (!para.get(0).partEq(p) && !para.get(1).partEq(p))
                return Boolean.FALSE;

            if (bound == null) {
                Point v0 = new Point(para.get(0).X, para.get(1).Y);
                Point v1 = new Point(para.get(1).X, para.get(0).Y);

                if (v0.partEq(p)) bound = v0;
                else bound = v1;

                para.add(p);
                return Boolean.TRUE;
            }

            if (!bound.partEq(p)) return Boolean.FALSE;

            return Boolean.TRUE;
        }

        public Integer getX()
        {
            if (para.get(0) == null) return ROWS / 2;
            if (para.get(1) == null) {
                if (para.size() <= 2) return ROWS / 2;
                else bound = new Point(para.get(0).X, para.get(2).Y);
            }
            if (bound == null) bound = new Point(para.get(0).X, para.get(1).Y);
            return bound.X;
        }

        public Integer getY()
        {
            if (para.get(0) == null) return COLS / 2;
            if (para.get(1) == null) {
                if (para.size() <= 2) return COLS / 2;
                else bound = new Point(para.get(0).X, para.get(2).Y);
            }
            if (bound == null) bound = new Point(para.get(0).X, para.get(1).Y);
            return bound.Y;
        }

    }

    static class Point {
        final int X, Y;
        public Point(int X, int Y)
        {
            this.X = X;
            this.Y = Y;
        }
        public Boolean partEq(Point p)
        {
            if (this.X!=p.X && this.Y!=p.Y)
                return Boolean.FALSE;
            return Boolean.TRUE;
        }
    }

}