Cover

Time Limit
20s
Memory Limit
65536KB
Judge Program
Standard
Ratio(Solve/Submit)
0.00%(0/0)
Description:

Given an N * N matrix A, whose elements are positive integers and not larger than 10000. There are also some '*'s in matrix A. Your program must find such three (perhaps overlapping) rectangles that they would contain all the '*'s which are in matrix A and the areas of these three rectangles (the area of one rectangle define as the number of elements it covers) must be non-negative and not exceed a given integer M.

If several solutions exist, the program should find a solution with minimal total costs of these three rectangles. The cost of one rectangle defines as the sum of all the numbers it contains in matrix A.

Input:

The first line of the input is an integer X representing the number of test cases. The following X blocks each represents a test case.

The first line of each block contains two numbers N and M (1 <= N <= 30, 0 <= M <= N * N) representing the size of the matrix and the maximum area of each rectangle. The second line contains a number C (0 <= C <= N * N), representing the number of '*'s in matrix A. The following C lines each contains two numbers X and Y (1 <= X, Y <= N), representing A[X][Y] (A[X][Y] represents the element in the X-th row and Y-th column)contains a '*'. The following N lines each contains N numbers, representing the matrix A.

Output:

For each block output one line, which contains an integer representing the minimum total costs, or 'Impossible' (without quote) if no solution exists.

Sample Input:
5
1 1
0
9
1 1
1
1 1
9
5 6
5
1 1
3 4
4 3
4 5
5 4
5 3 1 1 1
3 1 1 1 1
1 1 1 2 1
1 1 2 5 2
1 1 1 2 1
5 3
5
1 1
3 4
4 3
4 5
5 4
5 3 1 1 1
3 1 1 1 1
1 1 1 2 1
1 1 2 5 2
1 1 1 2 1
5 2
4
1 1
3 4
4 3
4 5
5 3 1 1 1
3 1 1 1 1
1 1 1 2 1
1 1 2 5 2
1 1 1 2 1
Sample Output:
0
9
20
23
Impossible

Submit