Problema B - Troca de Papéis

Uma das tarefas de preparar um problema das Olimpíadas Nacionais de Informática é criar casos de teste para testar os programas dos concorrentes. Hoje essa tarefa será invertida, é a tua vez de criar os casos de teste.

O problema para o qual irás criar casos de teste é o problema clássico da "Maior Subsequência Crescente" (também conhecido como Longest Increasing Subsequence). Neste problema é dada uma permutação de comprimento N, ou seja, uma sequência de N inteiros distintos de 1 a N. O objetivo é determinar o comprimento da maior subsequência crescente. Por exemplo, se a permutação for [4 2 3 1 5], a maior subsequência crescente tem comprimento 3, e é dada pelos elementos [2 3 5].

Para criar bons casos de teste a tua tarefa consiste no seguinte: são te dados dois inteiros K e Q. O objetivo é construir uma permutação de comprimento no máximo Q que tenha exatamente K subsequências crescentes máximas, ou seja, sequências crescentes distintas com tamanho igual ao da maior subsequência crescente.

Exemplo

Se K = 5, a seguinte permutação de 9 elementos tem exatamente 5 subsequências crescentes máximas:

7 9 8 5 6 3 4 1 2

O tamanho da maior subsequência crescente é 2, e as 5 subsequências são as seguintes: [7, 9], [7, 8], [5, 6], [3, 4], [1, 2].

Input

O input contém apenas uma linha com dois inteiros, K e Q.

Output

O output deve conter primeiro uma linha com um inteiro N, o comprimento da permutação que construíram.

De seguida deve conter uma linha com N inteiros separados por espaços, representando a permutação.

Se o valor de N for superior a Q o resultado da submissão será Wrong Answer.

Restrições

São garantidos os seguintes limites em todos os casos de teste desta parte que irão ser colocados ao programa:

1 ≤ K ≤ 1018 Número de sequências

Os casos de teste deste problema estão organizados em 4 grupos com restrições adicionais diferentes:

Grupo Número de Pontos Restrições adicionais
1 20 K ≤ 1 000, Q = 20 000
2 20 K ≤ 1012, Q = 20 000
3 30 Q = 5 000
4 30 Q = 400

Input do Exemplo 1

5 20000

Output do Exemplo 1

9
7 9 8 5 6 3 4 2 1

Explicação do Exemplo 1

Este exemplo corresponde ao exemplo mencionado no enunciado.

Input do Exemplo 2

3 20000

Output do Exemplo 2

3
3 2 1

Input do Exemplo 3

1 20000

Output do Exemplo 3

4
1 2 3 4

Final Nacional das ONI'2020
Prova Online
(22 de Maio de 2020)