Chaves da Nlogônia

A Nlogônia está implementando um novo sistema de transmissão de dados entre suas NN estações de pesquisa, numeradas de 11 a NN. A infraestrutura da rede é econômica: existem exatamente N1N-1 cabos bidirecionais interligando as estações, de modo que sempre existe um único caminho simples entre qualquer par de estações.

Para garantir que as mensagens cheguem apenas a quem realmente faz parte do trajeto, os engenheiros criaram um mecanismo baseado em chaves de acesso:

  1. Cada estação de pesquisa receberá uma lista de chaves de acesso.

  2. Quando uma estação uu envia uma mensagem para outra estação ww, a mensagem é assinada com todas as chaves que uu e ww possuem em comum.

  3. Uma estação vv só consegue ler e autorizar a passagem da mensagem se possuir todas as chaves usadas nessa assinatura. Caso duas estações não compartilhem nenhuma chave, qualquer estação da rede conseguirá ler a mensagem.

O comitê de segurança estabeleceu as seguintes regras para a distribuição das chaves:

Sua tarefa é ajudar a equipe de engenharia a definir quais chaves cada estação deve receber para cumprir todas as exigências.

Entrada

A primeira linha da entrada contém um único inteiro NN (2N10002 \leq N \leq 1000), representando o número de estações de pesquisa.

As N1N-1 linhas seguintes descrevem as conexões da rede. Cada linha contém dois inteiros uu e vv (1u,vN1 \leq u, v \leq N, uvu \neq v), indicando que existe um cabo ligando diretamente as estações uu e vv. É garantido que a rede forma uma árvore.

Saída

Na primeira linha, imprima um único inteiro KK (0K2N0 \leq K \leq 2N), indicando o total de chaves distintas criadas. As chaves devem ser identificadas por inteiros de 11 a KK.

Nas próximas NN linhas, descreva a lista de chaves de cada estação de 11 até NN. A ii-ésima dessas linhas deve começar com um inteiro QiQ_i (0QiK0 \leq Q_i \leq K) indicando a quantidade de chaves da estação ii, seguido por QiQ_i inteiros distintos representando as chaves entregues à estação ii.

É garantido que existe pelo menos uma atribuição válida de chaves. Se houver mais de uma, qualquer uma será aceita.

Exemplos

Entrada

3
1 2
2 3

Saída

4
2 1 3
2 2 3
2 2 4

A rede é uma linha 1 − 2 − 3 com N = 3, permitindo até 2(3) = 6 chaves (o exemplo utiliza 4 chaves):

  • A estação 1 possui as chaves {1, 3}.

  • A estação 2 possui as chaves {2, 3}.

  • A estação 3 possui as chaves {2, 4}.

Testando as comunicações entre cada par de estações:

  • Comunicação entre 1 e 3: A lista de chaves comuns é vazia. Como a assinatura não contém chaves, a estação 2 está automaticamente autorizada a processar a mensagem (e de fato 2 pertence ao trajeto entre 1 e 3).

  • Comunicação entre 1 e 2: A única chave comum é a chave 3. A estação 3 não possui a chave 3, logo 3 é bloqueada (e de fato 3 não pertence ao trajeto entre 1 e 2).

  • Comunicação entre 2 e 3: A única chave comum é a chave 2. A estação 1 não possui a chave 2, logo 1 é bloqueada (e de fato 1 não pertence ao trajeto entre 2 e 3).