package main
import (
"fmt"
)
func main() {
n := 0
m := 0
k := 0
for {
num, _ := fmt.Scan(&n, &m, &k)
if num == 0 {
break
} else {
arr := make([][]int, n)
for i:=0; i<n; i++ {
arr[i] = make([]int, m)
for j:=0; j<m; j++ {
fmt.Scan(&arr[i][j])
}
}
if process(arr, k) {
fmt.Println("Yes")
} else {
fmt.Println("No")
}
}
}
}
// 类似二分查找,从右上角开始找,右上角代代表中间这个数
// arr[i][j] > k, 说明这个数据太大了, j--
// arr[i][j] < k, 说明这个数据太小了, i++
// 重复这个过程,直到找到或找不到这个数
func process(arr [][]int, k int) bool {
n, m := len(arr), len(arr[0])
i, j := 0, m-1
for i<n && i>=0 && j>=0 && j<m {
if arr[i][j] == k {
return true
} else if arr[i][j] > k{
j--
} else {
i++
}
}
return false
}