#include<iostream>
#include<map>
#include<string>
#include<string.h>
#include<cstdio>
#include<vector>
using namespace std;
int aaa[10005][15];
int counts;
map<string,int> map1;
map<long long int,int> m;
void add(string s,int i,int j)
{
 if(map1.count(s)==0)
 {
  map1[s]=counts;
  aaa[i][j]=counts++;
 }
 else
 {
  aaa[i][j]=map1[s];
 }
}
int main()
{
 int row,col;
 char c;
 //freopen("input.txt","r",stdin);
 //freopen("out.txt","w",stdout);
 while(cin>>row>>col)
 {
  //cout<<"666";
  int xx=0,yy=0;
  map1.clear();
  counts=0;
  memset(aaa,0,sizeof(aaa));
  //cin.get();
  getchar();
  for(int i=0;i<row;i++)
  {
   for(int j=0;j<col;j++)
   {
    string s;
    
    while(1)
    {
     c=getchar();
     if((c=='\n'||c=='\r')||c==',')break;
     else s+=c;
    }
    add(s,i,j);
   }
  }
  int needrow1,needrow2;
  int j1,j2;
  for(j1=0;j1<col-1;j1++)
  {
   for(j2=j1+1;j2<col;j2++)
   {
    m.clear();
    int ccc=0;
    for(int i=0;i<row;i++)
    {
     long long int s;
     s=aaa[i][j1]*100000+aaa[i][j2];//相当于把两个数字当成串合并起来了
     /*s.insert(s.end(),aaa[i][j1]);
     s.insert(s.end(),'#');
     s.insert(s.end(),aaa[i][j2]);*///鬼知道我是怎么想到用这种错误的方法的
     if(m.count(s)==0)m[s]=i;
     else
     {
      printf("NO\n%d %d\n%d %d\n",m[s]+1,i+1,j1+1,j2+1);
      goto abc;
     }
    }
   }
  }
  cout<<"YES\n";
  abc:;
 }
 return 0;
}