//剑指offer第3题 二维数组的查找
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int arr[1005][1005];
int m,n,t;
bool bFind(int x,int y)
{
if(x > m || y < 1)
return false;
while(x <= m && y >= 1)
{
if(arr[x][y] == t)
return true;
else if(arr[x][y] > t)
--y;
else if(arr[x][y] < t)
++x;
}
return false;
}
int main()
{
//freopen("JOBDU1384.txt","r",stdin);
int i,j;
while(scanf("%d%d",&m,&n)!=EOF)
{
scanf("%d",&t);
memset(arr,0,sizeof(arr));
for(i = 1;i <= m ;i++)
for(j = 1;j <= n;j++)
scanf("%d",&arr[i][j]);
if(bFind(1,n))
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}