#P1868A. Fill in the Matrix

    ID: 10063 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>constructive algorithmsimplementation

Fill in the Matrix

Description

There is an empty matrix MM of size n×mn\times m.

Zhongkao examination is over, and Daniel would like to do some puzzle games. He is going to fill in the matrix MM using permutations of length mm. That is, each row of MM must be a permutation of length mm^\dagger.

Define the value of the ii-th column in MM as vi=MEX(M1,i,M2,i,,Mn,i)v_i=\operatorname{MEX}(M_{1,i},M_{2,i},\ldots,M_{n,i})^\ddagger. Since Daniel likes diversity, the beauty of MM is s=MEX(v1,v2,,vm)s=\operatorname{MEX}(v_1,v_2,\cdots,v_m).

You have to help Daniel fill in the matrix MM and maximize its beauty.

^\dagger A permutation of length mm is an array consisting of mm distinct integers from 00 to m1m-1 in arbitrary order. For example, [1,2,0,4,3][1,2,0,4,3] is a permutation, but [0,1,1][0,1,1] is not a permutation (11 appears twice in the array), and [0,1,3][0,1,3] is also not a permutation (m1=2m-1=2 but there is 33 in the array).

^\ddagger The MEX\operatorname{MEX} of an array is the smallest non-negative integer that does not belong to the array. For example, MEX(2,2,1)=0\operatorname{MEX}(2,2,1)=0 because 00 does not belong to the array, and MEX(0,3,1,2)=4\operatorname{MEX}(0,3,1,2)=4 because 00, 11, 22 and 33 appear in the array, but 44 does not.

The first line of input contains a single integer tt (1t10001\le t\le 1000) — the number of test cases. The description of test cases follows.

The only line of each test case contains two integers nn and mm (1n,m21051\le n,m\le 2\cdot 10^5) — the size of the matrix.

It is guaranteed that the sum of nmn\cdot m over all test cases does not exceed 21052\cdot 10^5.

For each test case, in the first line output a single integer — the maximum beauty of MM.

Then output the matrix MM of size n×mn\times m — the matrix you find.

If there are multiple solutions, you may output any of them.

Input

The first line of input contains a single integer tt (1t10001\le t\le 1000) — the number of test cases. The description of test cases follows.

The only line of each test case contains two integers nn and mm (1n,m21051\le n,m\le 2\cdot 10^5) — the size of the matrix.

It is guaranteed that the sum of nmn\cdot m over all test cases does not exceed 21052\cdot 10^5.

Output

For each test case, in the first line output a single integer — the maximum beauty of MM.

Then output the matrix MM of size n×mn\times m — the matrix you find.

If there are multiple solutions, you may output any of them.

Sample Input 1

4
4 3
1 16
6 6
2 1

Sample Output 1

3
1 0 2
0 2 1
1 0 2
0 2 1
2
14 7 15 4 10 0 8 6 1 2 3 5 9 11 12 13 
6
3 0 1 4 2 5 
5 2 1 0 4 3 
1 3 2 4 5 0 
4 1 3 2 5 0 
4 2 5 3 0 1 
2 4 0 5 1 3
0
0
0

Note

In the first test case:

  • v1=MEX(1,0,1,0)=2v_1=\operatorname{MEX}(1,0,1,0)=2;
  • v2=MEX(0,2,0,2)=1v_2=\operatorname{MEX}(0,2,0,2)=1;
  • v3=MEX(2,1,2,1)=0v_3=\operatorname{MEX}(2,1,2,1)=0.

Therefore, s=MEX(2,1,0)=3s=\operatorname{MEX}(2,1,0)=3.

It can be shown that 33 is the maximum possible beauty of MM.

In the second test case, any permutation will make s=2s=2.

In the third test case:

  • v1=MEX(3,5,1,4,4,2)=0v_1=\operatorname{MEX}(3,5,1,4,4,2)=0;
  • v2=MEX(0,2,3,1,2,4)=5v_2=\operatorname{MEX}(0,2,3,1,2,4)=5;
  • v3=MEX(1,1,2,3,5,0)=4v_3=\operatorname{MEX}(1,1,2,3,5,0)=4;
  • v4=MEX(4,0,4,2,3,5)=1v_4=\operatorname{MEX}(4,0,4,2,3,5)=1;
  • v5=MEX(2,4,5,5,0,1)=3v_5=\operatorname{MEX}(2,4,5,5,0,1)=3;
  • v6=MEX(5,3,0,0,1,3)=2v_6=\operatorname{MEX}(5,3,0,0,1,3)=2.

Therefore, s=MEX(0,5,4,1,3,2)=6s=\operatorname{MEX}(0,5,4,1,3,2)=6.