import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;

public class Tests_delivery {
    Random rnd = new Random(239);

    int MAX = 1_000_000;
    int MAX_N = 1_000_000;

    int tests = 1;

    public void writeTest(int[] a) {
        try {
            PrintWriter out = tests == -1 ? new PrintWriter(System.out) : new PrintWriter(String.format("%02d", tests++));

            ArrayList<Integer> set = new ArrayList<>();
            Arrays.stream(a).forEach(set::add);
            Collections.shuffle(set, rnd);

            out.println(a.length);

            for (int i = 0; i < a.length; i++) {
                if (i != 0) {
                    out.print(" ");
                }
                out.print(set.get(i));
            }
            out.println();

            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void sample1() {
        writeTest(new int[]{3, 1, 2});
    }

    public void sample2() {
        writeTest(new int[]{1, 2, 3, 4, 5, 6});
    }

    public void max() {
        int[] a = new int[MAX_N / 3 * 3];
        Arrays.fill(a, MAX);
        writeTest(a);
    }

    public void max2() {
        int[] a = new int[MAX_N / 3 * 3];
        for (int i = 0; i < a.length; i++) {
            a[i] = i + 1;
        }
        writeTest(a);
    }

    public void random(int size, int max) {
        size = size / 3 * 3;
        int[] a = new int[size];
        for (int i = 0; i < a.length; i++) {
            a[i] = rnd.nextInt(max) + 1;
        }
        writeTest(a);
    }

    public void gen(String[] args, int test) {
        tests = test;
        switch (args[0]) {
            case "sample1":
                sample1();
                break;
            case "sample2":
                sample2();
                break;
            case "max":
                int seed = Integer.parseInt(args[1]);
                rnd = new Random(seed);
                max();
                break;
            case "max2":
                seed = Integer.parseInt(args[1]);
                rnd = new Random(seed);
                max2();
                break;
            case "random":
                int size = Integer.parseInt(args[1]);
                int value = Integer.parseInt(args[2]);
                seed = Integer.parseInt(args[3]);
                rnd = new Random(seed);
                random(size, value);
                break;
        }
    }

    public void gen() {
        try {
            Scanner in = new Scanner(new File("tests_delivery.txt"));
            int test = 1;
            while (in.hasNext()) {
                String line = in.nextLine();
                if (line.length() == 0)
                    break;
                String[] x = line.split(" ");
                gen(Arrays.copyOfRange(x, 1, x.length), test++);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        if (args.length > 0) {
            new Tests_delivery().gen(args, -1);
        } else {
            new Tests_delivery().gen();
        }
    }
}
