#include <stdio.h>
#include <stdlib.h>
/*
#include <conio.h>
*/

void swap(int *x,int *y){
int temp;
temp = *x;
*x = *y;
*y = temp;
}

int main(){
int n,test = 0;
int i,j,k,l;
int *num;

/*
clrscr();
*/
scanf("%d",&n);
num = (int *)malloc(sizeof(int) * n);
for(i = 0;i < n;i++)
	scanf("%d",num + i);
for(i = 0;i < n - 1;i++)
	if(*(num + i) > *(num + i + 1))
		test++;
if(test == n - 1)
	printf("\nNo solution!");
else{
	for(i = (n - 1);i >= 0;i--)
		if(*(num + i) > *(num + i - 1))
			break;
	for(j = (n - 1);j >= i;j--)
		if(*(num + j) > *(num + i - 1)){
			swap(num + i - 1,num + j);
			break;
			}
	for(l = 0;l < n;l++)
		for(k = i;k <= (n - 2);k++)
			if(*(num + k) > *(num + k + 1))
				swap(num + k,num + k + 1);
	//debug
	printf("\n");
	for(l = 0;l < n;l++)
		printf("[%d]",*(num + l));
	//debug
	}
return 0;
}

