import java.util.Scanner;
import java.util.Arrays;
public class E {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
int[] inputBuffer = new int[T];
int max = 0;
for (int i = 0; i < T; i++) {
sc.nextInt();
inputBuffer[i] = sc.nextInt();
if (inputBuffer[i] > max) {
max = inputBuffer[i];
}
}
int[][] dp = new int[max + 2][max + 1];
dp[0] = new int[max + 1];
dp[0][0] = max;
for (int i = 1; i <= max + 1; i++) {
int[] newState = Arrays.copyOf(dp[i - 1], max + 1);
/*
for (int g: newState) {
System.out.printf(g + " ");
}
System.out.println();
*/
int index = 0;
while (newState[index] != 0) {
index++;
}
for (int j = 0; j < index; j++) {
newState[j]--;
}
newState[index] = index;
dp[i] = newState;
}
for (int k = 0; k < inputBuffer.length; k++) {
int i = inputBuffer[k];
int[] out = dp[i];
int end = 0;
r: for (int j = out.length - 1; j >= 0; j--) {
if (out[j] != 0) {
end = j;
break r;
}
}
System.out.println((k + 1) + " " + end);
for (int j = 1; j <= end; j++) {
System.out.printf(out[j] + " ");
if (j % 10 == 0) {
System.out.println();
}
}
System.out.println();
}
/*
for (int i = 0; i < max + 1; i++) {
for (int j: dp[i]) {
System.out.printf(dp[i][j] + " " );
}
System.out.println();
}
*/
}
}