n=int(input())
num_list1=list(map(str,input().split()))
num_list2=[]
input_list=[]

for k in num_list1:
    num_list2.append(k)
    input_list.append(k)


def bubble(num_list):
    i=0
    flag=True
    while flag:
        flag=False
        for j in range(len(num_list)-1,i,-1):
            if int(num_list[j-1][1])>int(num_list[j][1]):
                tmp=num_list[j-1]
                num_list[j-1]=num_list[j]
                num_list[j]=tmp
                flag=True
    return num_list 

def select(num_list):
    for i in range(0,len(num_list)):
        min=i
        for j in range(min+1,len(num_list)):
            if int(num_list[min][1])>int(num_list[j][1]):
                min=j
        tmp=num_list[i]
        num_list[i]=num_list[min]
        num_list[min]=tmp
    return num_list



def stable(input_list,output_list):
    for i in range(0,len(input_list)):
        for j in range(i+1,len(output_list)):
            for k in range(0,len(output_list)):
                for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
    return "Stable"

bubble=bubble(num_list1)
select=select(num_list2)


print(" ".join(bubble))
print(stable(input_list,bubble))
print(" ".join(select))
print(stable(input_list,select)) n=int(input()) n int(input()) int input() input num_list1=list(map(str,input().split())) num_list1 list(map(str,input().split())) list map(str,input().split()) map str input().split() ().split () input split num_list2=[] num_list2 [] input_list=[] input_list [] for k in num_list1:
    num_list2.append(k)
    input_list.append(k) k num_list1 num_list2.append(k) num_list2.append num_list2 append k input_list.append(k) input_list.append input_list append k def bubble(num_list):
    i=0
    flag=True
    while flag:
        flag=False
        for j in range(len(num_list)-1,i,-1):
            if int(num_list[j-1][1])>int(num_list[j][1]):
                tmp=num_list[j-1]
                num_list[j-1]=num_list[j]
                num_list[j]=tmp
                flag=True
    return num_list  bubble i=0 i 0 flag=True flag True while flag:
        flag=False
        for j in range(len(num_list)-1,i,-1):
            if int(num_list[j-1][1])>int(num_list[j][1]):
                tmp=num_list[j-1]
                num_list[j-1]=num_list[j]
                num_list[j]=tmp
                flag=True
     flag flag=False flag False for j in range(len(num_list)-1,i,-1):
            if int(num_list[j-1][1])>int(num_list[j][1]):
                tmp=num_list[j-1]
                num_list[j-1]=num_list[j]
                num_list[j]=tmp
                flag=True
     j range(len(num_list)-1,i,-1) range len(num_list)-1 len(num_list) len num_list 1 i -1 if int(num_list[j-1][1])>int(num_list[j][1]):
                tmp=num_list[j-1]
                num_list[j-1]=num_list[j]
                num_list[j]=tmp
                flag=True
     int(num_list[j-1][1])>int(num_list[j][1]) int(num_list[j-1][1]) int num_list[j-1][1] [j-1] num_list j-1 j 1 1 int(num_list[j][1]) int num_list[j][1] [j] num_list j 1 tmp=num_list[j-1] tmp num_list[j-1] num_list j-1 j 1 num_list[j-1]=num_list[j] num_list[j-1] num_list j-1 j 1 num_list[j] num_list j num_list[j]=tmp num_list[j] num_list j tmp flag=True flag True return num_list num_list num_list num_list def select(num_list):
    for i in range(0,len(num_list)):
        min=i
        for j in range(min+1,len(num_list)):
            if int(num_list[min][1])>int(num_list[j][1]):
                min=j
        tmp=num_list[i]
        num_list[i]=num_list[min]
        num_list[min]=tmp
    return num_list select for i in range(0,len(num_list)):
        min=i
        for j in range(min+1,len(num_list)):
            if int(num_list[min][1])>int(num_list[j][1]):
                min=j
        tmp=num_list[i]
        num_list[i]=num_list[min]
        num_list[min]=tmp
     i range(0,len(num_list)) range 0 len(num_list) len num_list min=i min i for j in range(min+1,len(num_list)):
            if int(num_list[min][1])>int(num_list[j][1]):
                min=j
         j range(min+1,len(num_list)) range min+1 min 1 len(num_list) len num_list if int(num_list[min][1])>int(num_list[j][1]):
                min=j
         int(num_list[min][1])>int(num_list[j][1]) int(num_list[min][1]) int num_list[min][1] [min] num_list min 1 int(num_list[j][1]) int num_list[j][1] [j] num_list j 1 min=j min j tmp=num_list[i] tmp num_list[i] num_list i num_list[i]=num_list[min] num_list[i] num_list i num_list[min] num_list min num_list[min]=tmp num_list[min] num_list min tmp return num_list num_list num_list num_list def stable(input_list,output_list):
    for i in range(0,len(input_list)):
        for j in range(i+1,len(output_list)):
            for k in range(0,len(output_list)):
                for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
    return "Stable" stable for i in range(0,len(input_list)):
        for j in range(i+1,len(output_list)):
            for k in range(0,len(output_list)):
                for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
     i range(0,len(input_list)) range 0 len(input_list) len input_list for j in range(i+1,len(output_list)):
            for k in range(0,len(output_list)):
                for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
     j range(i+1,len(output_list)) range i+1 i 1 len(output_list) len output_list for k in range(0,len(output_list)):
                for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
     k range(0,len(output_list)) range 0 len(output_list) len output_list for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
     l range(k+1,len(output_list)) range k+1 k 1 len(output_list) len output_list if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
     input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k] input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] input_list[i][1]==input_list[j][1] input_list[i][1] [i] input_list i 1 input_list[j][1] [j] input_list j 1 input_list[i]==output_list[l] input_list[i] input_list i output_list[l] output_list l input_list[j]==output_list[k] input_list[j] input_list j output_list[k] output_list k return "Not stable" "Not stable" return "Stable" "Stable" input_list input_list output_list output_list bubble=bubble(num_list1) bubble bubble(num_list1) bubble num_list1 select=select(num_list2) select select(num_list2) select num_list2 print(" ".join(bubble)) print " ".join(bubble) " ".join " " join bubble print(stable(input_list,bubble)) print stable(input_list,bubble) stable input_list bubble print(" ".join(select)) print " ".join(select) " ".join " " join select print(stable(input_list,select)) print stable(input_list,select) stable input_list select def stable(input_list,output_list):
    for i in range(0,len(input_list)):
        for j in range(i+1,len(output_list)):
            for k in range(0,len(output_list)):
                for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
    return "Stable" def stable(input_list,output_list):
    for i in range(0,len(input_list)):
        for j in range(i+1,len(output_list)):
            for k in range(0,len(output_list)):
                for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
    return "Stable" stable bubble=bubble(num_list1) bubble(num_list1) bubble def bubble(num_list):
    i=0
    flag=True
    while flag:
        flag=False
        for j in range(len(num_list)-1,i,-1):
            if int(num_list[j-1][1])>int(num_list[j][1]):
                tmp=num_list[j-1]
                num_list[j-1]=num_list[j]
                num_list[j]=tmp
                flag=True
    return num_list  def bubble(num_list):
    i=0
    flag=True
    while flag:
        flag=False
        for j in range(len(num_list)-1,i,-1):
            if int(num_list[j-1][1])>int(num_list[j][1]):
                tmp=num_list[j-1]
                num_list[j-1]=num_list[j]
                num_list[j]=tmp
                flag=True
    return num_list  bubble def select(num_list):
    for i in range(0,len(num_list)):
        min=i
        for j in range(min+1,len(num_list)):
            if int(num_list[min][1])>int(num_list[j][1]):
                min=j
        tmp=num_list[i]
        num_list[i]=num_list[min]
        num_list[min]=tmp
    return num_list def select(num_list):
    for i in range(0,len(num_list)):
        min=i
        for j in range(min+1,len(num_list)):
            if int(num_list[min][1])>int(num_list[j][1]):
                min=j
        tmp=num_list[i]
        num_list[i]=num_list[min]
        num_list[min]=tmp
    return num_list select num_list2=[] [] num_list2 n=int(input()) int(input()) n select=select(num_list2) select(num_list2) select num_list1=list(map(str,input().split())) list(map(str,input().split())) num_list1 input_list=[] [] input_list
n=int(input())
num_list1=list(map(str,input().split()))
num_list2=[]
input_list=[]

for k in num_list1:
    num_list2.append(k)
    input_list.append(k)


def bubble(num_list):
    i=0
    flag=True
    while flag:
        flag=False
        for j in range(len(num_list)-1,i,-1):
            if int(num_list[j-1][1])>int(num_list[j][1]):
                tmp=num_list[j-1]
                num_list[j-1]=num_list[j]
                num_list[j]=tmp
                flag=True
    return num_list 

def select(num_list):
    for i in range(0,len(num_list)):
        min=i
        for j in range(min+1,len(num_list)):
            if int(num_list[min][1])>int(num_list[j][1]):
                min=j
        tmp=num_list[i]
        num_list[i]=num_list[min]
        num_list[min]=tmp
    return num_list



def stable(input_list,output_list):
    for i in range(0,len(input_list)):
        for j in range(i+1,len(output_list)):
            for k in range(0,len(output_list)):
                for l in range(k+1,len(output_list)):
                    if input_list[i][1]==input_list[j][1] and input_list[i]==output_list[l] and input_list[j]==output_list[k]:
                        return "Not stable"
    return "Stable"

bubble=bubble(num_list1)
select=select(num_list2)


print(" ".join(bubble))
print(stable(input_list,bubble))
print(" ".join(select))
print(stable(input_list,select))
