Marta é um exímia decoradora de interiores que atingiu fama e sucesso devido seu modo peculiar de trabalho: uma vez identificados os itens que comporão a decoração e as localizações para estes itens, ela avalia todas as possibilidades de posicionamento destes objetos, uma a uma!
Após perder uma série de funcionários, que não aguentavam a estressante rotina do “tira daqui, coloca ali”, Marta encomendou um software que simulava o interior, os itens e as localizações em modelos tridimensionais, e apresentava todas estas possibilidades em sequência. Como Marta tem pouca familiaridade com computadores, ela fez a exigência que o programa deveria ter apenas um único botão: para frente!
Neste software, cada objeto e cada localização recebe um identificador inteiro entre 1 e , e uma possibilidade (configuração) do ambiente é armazenada em uma lista de inteiros, onde o -ésimo número significa que o objeto ocupa a localização . Por exemplo, a configuração significa: objeto 4 na localização 1, objeto 2 na localização 2, objeto 1 na localização 3 e objeto 3 na localização 4. As configuração são geradas e apresentadas na ordem lexicográfica, isto é, ordenadas de forma ascendente.
Marta logo se adaptou à nova tecnologia e conseguiu ampliar seu sucesso e renome, pois conseguia resultados mais rapidamente do que nunca. Porém, acabou por sentir falta de um recurso bastante simples: retornar à configuração anterior pois, de vez em quando, ela apertava inadvertidamente o botão avançar!
Auxilie Marta adicionando esta funcionalidade no software de simulação.
A entrada é composta por duas linhas: a primeira contém o inteiro , que indica o número de objetos e localizações disponíveis.
A segunda linha da entrada contém inteiros , separados por um espaço em branco, indicando a configuração atual do ambiente.
Imprima, em uma linha, os inteiros que representam a configuração que antecedia a configuração dada. Caso a configuração dada seja a configuração inicial do software, imprima o valor .
3
3 1 2
2 3 1
4
1 2 3 4
-1
5
2 4 1 3 5
2 3 5 4 1
10
7 8 2 3 4 1 6 5 10 9
7 8 2 3 4 1 6 5 9 10