Este é um problema com duas execuções. Em cada teste, a sua solução será executada duas vezes.
Na aula de informática, Алеся e Борис estão estudando criptografia. Eles decidiram inventar o seu próprio método de criptografar mensagens.
Алеся escolhe $k$ inteiros distintos de $1$ a $n$ e denota o conjunto obtido por $T$. Алеся quer transmitir a Борис o conjunto $T$ como uma mensagem criptografada. Para isso, a partir do conjunto $T$, Алеся construirá e transmitirá a Борис outro conjunto $R$, também formado por inteiros de $1$ a $n$.
Eles não querem que o tamanho da mensagem mude após a criptografia, portanto $R$ também deve conter exatamente $k$ números. Além disso, acreditam que, se $T$ e $R$ tiverem pelo menos um elemento em comum, a sua criptografia não será suficientemente segura. Por isso, não pode existir um número que pertença tanto a $T$ quanto a $R$, ou seja, os conjuntos $T$ e $R$ devem ser disjuntos. É garantido que $k\le n/2$, portanto sempre é possível construir pelo menos um conjunto $R$ a partir do conjunto $T$.
Quando Борис receber a mensagem criptografada $R$, deverá descriptografá-la e obter a mensagem original $T$.
Ajude Алеся e Борис a criar e implementar algoritmos de criptografia e descriptografia. Na primeira execução, o seu programa desempenhará o papel de Алеся, e na segunda execução, o de Борис.
Entrada
A primeira linha da entrada contém um número $a$, igual a $1$ ou $2$: o número da execução do seu programa.
A segunda linha contém um número $m$, a quantidade de mensagens ($1\le m\le300\,000$) que o seu programa deve criptografar (na primeira execução) ou descriptografar (na segunda execução).
As próximas $2m$ linhas contêm as descrições de $m$ mensagens, com duas linhas por mensagem.
A primeira linha de cada mensagem contém dois inteiros $n_i$ e $k_i$ ($2\le n_i\le10^9$, $1\le k_i\le300\,000$, $k_i\le\frac{n_i}{2}$). A segunda linha contém $k_i$ inteiros distintos de $1$ a $n_i$, em ordem crescente.
É garantido que a soma de todos os valores de $k_i$ em um teste não excede $300\,000$.
Se $a=1$, os números fornecidos constituem a mensagem original. Se $a=2$, os números fornecidos são o resultado produzido pelo seu programa ao criptografar alguma mensagem na primeira execução.
Saída
O programa deve imprimir $m$ linhas. A linha $i$ deve conter $k_i$ inteiros distintos de $1$ a $n_i$, em ordem crescente.
Na primeira execução, para cada mensagem original $T_i$, o programa deve imprimir o conjunto $R_i$, que deve ser disjunto de $T_i$.
Na segunda execução, para cada mensagem criptografada $R_i$, o programa deve recuperar a mensagem original $T_i$.
Exemplos
Primeira execução
Entrada 1
1 2 2 1 1 5 2 1 4
Saída 1
2 2 3
Segunda execução
Entrada 2
2 2 5 2 2 3 2 1 2
Saída 2
1 4 1
Nota
Observe que o exemplo mostra escolhas específicas para a saída na primeira execução e para a entrada na segunda execução. Se o seu programa imprimir outro conjunto $R$, a entrada na segunda execução também será diferente.
Além disso, na segunda execução, as mensagens criptografadas não são necessariamente fornecidas ao programa do participante na mesma ordem em que apareciam na primeira execução.
Subtarefas
Para indicar restrições adicionais sobre a entrada, denotaremos a sequência de números que define o conjunto $T_i$ por $t_1,t_2,\ldots,t_{k_i}$. Eles estão em ordem crescente.
Denotaremos a soma de $n_i$ em um teste por $N$.
Denotaremos a soma de $k_i$ em um teste por $K$.
| Subtarefa | Pontos | Restrições adicionais sobre $n_i,N$ | Restrições adicionais sobre $k_i,K$ | Restrições adicionais sobre $t_j$ | Subtarefas necessárias | Informação sobre a avaliação |
|---|---|---|---|---|---|---|
| 1 | 9 | $N\le5\,000$ | $k_i=1$ | Primeiro erro | ||
| 2 | 11 | $N\le5\,000$ | $k_i=2$ | Primeiro erro | ||
| 3 | 9 | $N\le300\,000$ | $k_i=\frac{n_i}{2}$ | Primeiro erro | ||
| 4 | 7 | $n_i\le7$, $N\le5\,000$ | Exemplos | Primeiro erro | ||
| 5 | 9 | $t_{j+1}-t_j\ge2$, $t_{k_i}\le n_i-1$ | Primeiro erro | |||
| 6 | 9 | $t_{k_i}-t_1\le\frac{n_i}{2}-1$ | Primeiro erro | |||
| 7 | 10 | $N \le 5000$ | $t_{k_i}\le n_i-k_i$ | Primeiro erro | ||
| 8 | 12 | $N\le100$ | Exemplos | Primeiro erro | ||
| 9 | 3 | $N\le5\,000$ | Exemplos, 1–2, 4, 7–8 | Primeiro erro | ||
| 10 | 7 | $N \le 300\,000$ | Exemplos, 1–4, 7–9 | Primeiro erro | ||
| 11 | 7 | $K\le5\,000$ | Exemplos, 1–2, 4, 7–9 | Primeiro erro | ||
| 12 | 7 | Sem restrições adicionais | Exemplos, 1–11 | Primeiro erro |