import java.util.*;


public class Solution {
    public boolean Find (int target, int[][] array) {
    //     //直接遍历判断
    //     for(int i=0;i<array.length;i++){

    //         for(int j=0;j<array[0].length;j++){
    //             if(target==array[i][j]){
    //                 return true;
    //             }
    //         }
    //     }
       
    //    return false;
    //观察可以知道左上右下是最小的和最大的;而可以从左下角出发判断
    //如果小于那么就向上走,如果大于就向右走,走到边界没有就返回false

    int l = array.length;
    int i=l-1;
    int j =0;
    while(i>=0&&j<array[0].length){
        
            if(target==array[i][j]){
                return true;
            }else if(target<array[i][j]){
                
            i--;
                
            }else{
                j++;
            }
        }
    
    return false;
    }
}