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
}