### Problem Statement

A Young tableau is a two-dimensional array of integers such that each row and column is sorted in ascending order (rows left-to-right, columns top-to-bottom). Given a int[] table with exactly 16 elements, all of which are distinct, you will return the fewest number of swaps required to turn table into a Young tableau. table should be interpreted as a 4 x 4 array of integers. More visually,
`  table = { A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P }`
corresponds to the following 4 x 4 array
```  A  B  C  D
E  F  G  H
I  J  K  L
M  N  O  P ,
```
where A through P are integers.

### Definition

 Class: QuickTableau Method: numSwaps Parameters: int[] Returns: int Method signature: int numSwaps(int[] table) (be sure your method is public)

### Constraints

-table will contain exactly 16 elements.
-table will contain no repeated elements.
-Each element of table will be between 1 and 16, inclusive.

### Examples

0)

 ```{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }```
`Returns: 0`
 We already have a Young tableau.
1)

 ```{ 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }```
`Returns: 6`
2)

 ```{ 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }```
`Returns: 1`
 Here we only need to swap the first 2 values.
3)

 ```{ 4, 3, 2, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }```
`Returns: 2`

#### Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=2321

#### Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=10094&pm=2321