#include <iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[20][20];
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m)&&(n!=0&&m!=0))
{
int num=0;
int flag=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
if(a[i][j]==1)
{
num++;
}
}
}
if(num==n*m)
{
flag=1;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(a[i][j]==0)
{
if(i-1>=0&&a[i-1][j]==a[i][j])
{
flag=1;
}
else if(i+1<n&&a[i+1][j]==a[i][j])
{
flag=1;
}
else if(j-1>=0&&a[i][j]==a[i][j-1])
{
flag=1;
}
else if(j+1<m&&a[i][j]==a[i][j+1])
{
flag=1;
}
}
}
}
if(flag==0)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
其实是个水题
四个方向遍历一遍就好了