import java.io.*;
import java.util.ArrayList;
class Arrangement{
public static void main(String args[]){
Arrangement arrangement = null;
int num = 0;//
boolean flag = true;// , , true
ArrayList<String> strs = new ArrayList<String>();
while(flag){
try{
num = Integer.parseInt(readDataFromConsole(" :"));
flag = false;
}catch(Exception e){
System.out.println(" .");
}
}
for(int i = 1; i <= num; i ++){
strs.add(readDataFromConsole(" " + i + " : "));
}
arrangement = new Arrangement(strs.toArray(new String[]{}));
System.out.println(" :");
arrangement.sort();
}
private String[] str = null;
public Arrangement(String[] s){
this.str = s;
}
//
private static String readDataFromConsole(String prompt) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
try {
System.out.print(prompt);
str = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
private void sort(){
int num=str.length;
int[] n1 = new int[num -1];
int[] nss = new int[num];
String[] s = new String[num];
boolean flag = false;
int x = 0;
do{
if(x == 0){//
for(int i = 0;i < num - 1;i ++){
n1[i] = 0;
}
} else {//
for(int i = 0;i < num - 1;i ++){
if(n1[num - 2 - i] < i + 1){
n1[num - 2 - i] ++;
for(int j=num-1-i;j<num-1;j++){
n1[j] = 0;
}
break;
}
}
}
for(int i = 0;i < num - 1;i++){
if(n1[i] == (num - 1 - i)){
flag = false;
} else {
flag = true;
break;
}
}
for(int i = 0;i < num;i++){//
nss[i] = 0;
}
for(int i = 0;i < num - 1;i++){//
int hh = 0, j = 0;//
do{
if(nss[num - 1 - hh] == 1){
hh++;
continue;
} else {
if(j == n1[i]){
break;//
} else {
hh++;
j++;
}
}
} while(true);
hh = num - 1 - hh;
s[hh] = str[num-1-i];
nss[hh] = 1;
}
for(int i = 0; i < num;i++){//
if(nss[i] == 0) {
s[i] = str[0];
break;
}
}
System.out.print(++x + "\t");
for(int i = 0;i < num - 1;i++){
System.out.print(n1[i] + "");
}
System.out.print("\t");
for(int i = 0;i < num;i++){
System.out.print(s[i] + "");
}
System.out.println();
}while(flag);
}
}