Given a integer value $n$, we generate a $n^2 * n^2$ integer matrix $M$ in the following way. 

1. Each ceil has value range $[1~n]$
2. In each row, the value is nondecreasing. E.g. $M[i, j] \leq M[i, j+1]$
3. In each column, the value is nondecreasing. E.g. $M[i, j] \leq M[i+1, j]$

For example the following is a example of $n=2$ & $4*4$ matrix.


1 1 1 2

1 1 1 2

2 2 2 2

2 2 2 2

We define the concept of turning point $(i,j)$ as 

1. $M[i,j] = M[i, j+1] - 1$
 
2. $M[i,j] = M[i+1, j] - 1$

We can treat turning ceil as skyline point if you may. 

For the above example, the turning points are $(2,3)$ and $(4,4)$. 

We want to calculate the upper bound of total number of turning points, we denoted by $|P|$.

It is easy to proof that the upper bound size of set P is $O(n^3)$.  

However, the real data shows that $|P|$ is always failing in the complexity of $n^2$ range. 

Is there a way to proof that the upper bound of $|P|$ is $n^2$?