private static void DFS(int i, int j,int value, int[][] matrix,boolean[][] visit, boolean[] flag) {
        if(i<0 ||j<0) {
            flag[0] = true;
            return;
        }
        if(i>=matrix.length||j>=matrix[0].length) {
            flag[1] = true;
            return;
        }
        if(flag[0] && flag[1])
            return;
        if(visit[i][j] ||matrix[i][j]>value)
            return;
        visit[i][j]=true;
        DFS(i-1,j,matrix[i][j],matrix,visit,flag);
        DFS(i,j-1,matrix[i][j],matrix,visit,flag);
        DFS(i+1,j,matrix[i][j],matrix,visit,flag);
        DFS(i,j+1,matrix[i][j],matrix,visit,flag);
    }