class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int m = array.size();
int n = array[0].size();
if(m == 0 || n == 0) return false;
int i = 0 , j = 0 , now = array[0][0];
while(1){
if(now == target) return true;
if(j<n-1){
if(now < target && array[i][j+1] <= target){
now = array[i][j+1];
j = j+1;
continue;
}
if(j > 0 && array[i][j-1] >= target){
now = array[i][j-1];
j = j - 1;
continue;
}
if(i < m-1){
now = array[i+1][j];
i = i + 1;
continue;
}
}
if(i<m-1){
now = array[i+1][j];
i = i + 1;
if(array[i][j-1] >= target){
now = array[i][j-1];
j = j - 1;
continue;
}
continue;
}
break;
}
return false;
}
};