class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int diff[array[0].size()-1];
for(int i=0;i<array[0].size();i++){
diff[i]=target-array[i][i];
if(diff[i] == 0){
return true;}}
int max=diff[0];
int minposition=0;
for(int i=0;i<array[0].size();i++){
if (diff[i]<0){
if (diff[i]>max){
minposition=i;
max=diff[i];
}
}}
int min=diff[array[0].size()-1];
int maxposition=0;
for(int i=0;i<array[0].size();i++)
{if (diff[i]>0){
if (diff[i]<min){
maxposition=i;
min=diff[i];
}
}
}
for (int m =0;m<minposition;m++){
for(int n=maxposition;n<array[0].size();n++){
if (array[m][n]==target)
{return true;}
}
}
for (int n=maxposition;n<array[0].size();n++){
for (int m =0;m<minposition;m++){
if (array[n][m]==target)
{ return true;}
}
}
return false;
}
};