#include <iostream>
#include <cstdio>
using namespace std;
char wall[1001][1001];//空地跟墙的排列
int rowc[1000]={0},colc[1000]={0};//rowc代表行,存储的是该行的墙的个数,colc代表列,存储的是该列的墙的个数
int check(int i,int j)//检查该点是否符合要求
{
int res=rowc[i]+colc[j];
if(wall[i][j]=='*')
res--;
return res;
}
int main()
{
int n,m,count=0,count1=0,temp,temp1=0,x,y;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>wall[i][j];
if(wall[i][j]=='*')
{
rowc[i]++;
colc[j]++;
count++;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
temp=check(i,j);
if(temp==count)
{
temp1=1;
x=i,y=j;
break;
}
}
if(temp1==1)break;
}
if(temp1==1)
{
cout<<"YES"<<endl;
printf("%d %d\n",x,y);
}
else
printf("NO\n");
return 0;
}
#include <cstdio>
using namespace std;
char wall[1001][1001];//空地跟墙的排列
int rowc[1000]={0},colc[1000]={0};//rowc代表行,存储的是该行的墙的个数,colc代表列,存储的是该列的墙的个数
int check(int i,int j)//检查该点是否符合要求
{
int res=rowc[i]+colc[j];
if(wall[i][j]=='*')
res--;
return res;
}
int main()
{
int n,m,count=0,count1=0,temp,temp1=0,x,y;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>wall[i][j];
if(wall[i][j]=='*')
{
rowc[i]++;
colc[j]++;
count++;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
temp=check(i,j);
if(temp==count)
{
temp1=1;
x=i,y=j;
break;
}
}
if(temp1==1)break;
}
if(temp1==1)
{
cout<<"YES"<<endl;
printf("%d %d\n",x,y);
}
else
printf("NO\n");
return 0;
}