#include <stdio.h>

int bubble(int a[],int N){
  int i,j,z;
  z=0;
  for(i=0;i<N;i++){
    for(j=N-1;j>=i+1;j--){
      if(a[j]<a[j-1]){
          z=a[j-1];
          a[j-1]=a[j];
          a[j]=z;
      }
    }
  }
}

int select(int b[],int N){
  int i,j,s,z,minj;
  z=0;
  for(i=0;i<N-1;i++){
    minj=i;
    for(j=i;j<N;j++){
      if(b[j]<b[minj]){
        minj=j;
      }
    }
    z=b[i];
    b[i]=b[minj];
    b[minj]=z;
  }
}

int isStable(int a[],int b[],int N){
  int i;
  for(i=0;i<N;i++){
    if(a[i]!=b[i].){
      return false;
    }
  return true;
}

int main(void)
{
  int i,N,a[100],b[100];
  scanf("%d",&N);
  
  for(i=0;i<N;i++){
    scanf("%d",&a[i]);
    scanf("%d",&b[i]);
    b[i]=a[i]
  }
  bubble(a[],N);
  select(b[],N);

  for(i=0;i<N;i++){
    if(i>0){
      printf(" ");
    }
    printf("%d",a[i]);
  }
  printf("%d\n");
  
  for(i=0;i<N;i++){
    if(i>0){
      printf(" ");
    }
    printf("%d",b[i]);
  }
  printf("%d\n");

  if(isStable(a[],b[],N)){
    printf("Stable\n");
  }
  else{
    printf("Not stable\n");
  }
  return 0;
}


  

    