Well, as the problem states,think of an 2x2 matrix,

[

a, b;

c, d;

]

we can clearly know that a is the min number and d is the max number,

the we put this 2x2 matrix into a big matrix:

```
............... ....................
.....Z1........ .........Z2.........
............... ...................
..............a b...................
..............c d...................
......Z3....... .........Z4.........
................ ...................
```

- If the target is >a and <d, we can discard elements in Z1 and Z4!

(since all elements in Z4 is bigger than d && all elements in Z1 is

smaller than Z1). - Then we redo the process in Z2 and Z3.

So,how to find a and d?Because the diagonal elements is ordered, we just simply binary search in the diagonal elements and find the lower bound of our target.

Suppose N=n*m;

we get T(N)=2T(N/2)+O(lgN)

T(N)=O(lg^2N)?