#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;
}