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();
        }
        */
    }
}