#include #include #include using namespace std; long long i,j,p,q,n,m,k,a[1001][1001],MAXL,t,max1,ans,c[1000001],LDS,LIS,c1[1000001]; int b[1001][1001],fl=0; struct Pic { int l,r; } t1,t2,t3; vector v[1000001]; void rek(int l,int r,int br) { if(l<1 || l>n || r<1 || r>m || a[l][r]==-1)return ; if(br==MAXL+1) { fl=1; return ; } t1.l=l; t1.r=r; b[l][r]=1; v[k].push_back(t1); if(b[l][r+1]==0 && a[l][r+1]!=-1 && fl==0)rek(l,r+1,br+1); if(b[l+1][r]==0 && a[l+1][r]!=-1 && fl==0)rek(l+1,r,br+1); if(b[l][r-1]==0 && a[l][r-1]!=-1 && fl==0)rek(l,r-1,br+1); if(b[l-1][r]==0 && a[l-1][r]!=-1 && fl==0)rek(l-1,r,br+1); fl=1; return ; } int dvt(long long p) { long long l,r,mid; l=0; r=LDS+1; while(l<=r) { mid=(l+r)/2; if(t>c[mid-1] && (t=c[mid])l=mid+1; else r=mid-1; } return -1; } int dvt1(long long p) { long long l,r,mid; l=0; r=LDS+1; while(l<=r) { mid=(l+r)/2; if(tc1[mid] || (c1[mid]==0)))return mid; else if(p<=c1[mid])l=mid+1; else r=mid-1; } return -1; } int main() { freopen("path.in","r",stdin); freopen("path.out","w",stdout); cin>>n>>m; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { cin>>a[i][j]; } } cin>>MAXL; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { //cout<LDS)LDS=poz; if(poz1>LIS)LIS=poz1; } //cout<max1){max1=q;ans=i;} } //cout<