import java.util.*;

class help{

public static void quicksort(int[] a){
shuffle(a);
quicksort(a,0,a.length-1);
}

public static void quicksort(int[] a, int left, int right){
 if(right<=left) return;
int i=partition(a,left,right);
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}

private static int partition(int[] a,int left, int right){
int i=left-1;
int j=right;
while(true){
	while(less(a[++i],a[right]));
	while(less(a[right],a[--j]))
		if(j==left)break;
	if(i>=j)break;
	exch(a,i,j);		
	}
exch(a,i,right);
return i;
}

private static boolean less(int x, int y){
return(x<y);
}

private static void exch(int[] a, int i, int j){
int swap=a[i];
a[i]=a[j];
a[j]=swap;
}

private static void shuffle(int[] a){
int N=a.length;
for(int i=0; i<N;i++){
	int r=i+(int)(Math.random()*(N-i));
	exch(a,i,r);
}
}

public static void main(String[] args){

Scanner sc = new Scanner(System.in);
int pole[];
  while(sc.hasNext())
  {
    int N = Integer.valueOf(sc.nextLine());
    if(N==0) System.exit(0);
    String st=sc.nextLine();
    String[] sub = st.split("[ ]");
    pole=new int[N];
    for(int i=0;i<N;i++)
    {	
	pole[i]=Integer.valueOf(sub[i]);
    }
    quicksort(pole);
   if(N == 2)
   {
     System.out.print(pole[0]+"-A ");
     System.out.print(pole[1]+"-B ");
   }else if(N>2 || N==1)
{
   System.out.print(pole[0]+"-A ");
   if(N>2)System.out.print(pole[2]+"-B ");
   if(N>1)System.out.print(pole[1]+"-A ");
   for(int i=3;i<N;i++)
   {
 	if(i%2 == 1)System.out.print(pole[i]+"-B");
	if(i%2 == 0)System.out.print(pole[i]+"-A");
	if(i+1<N)System.out.print(" ");
	
   }}
	System.out.println();
  }
}

}




