using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


class data
{
    public string card;
    public int number;

};
namespace ConsoleApplication3
{
    class Program
    {



        static void Main(string[] args)
        {
            string temp;
            string[] temp2;
            int[] result;
            data[] input;
            int[] position = new int[10]{0,0,0,0,0,0,0,0,0,0};
            int number;
            int count=0,mini;
            data swap;
            bool stable1 = true;
            bool stable2 = true;
            data[] input2;
            data[] original;

            temp = Console.ReadLine();
            number = int.Parse(temp);
            temp2 = new string[number];
            input = new data[number];
            input2 = new data[number];
            original = new data[number];
            temp = Console.ReadLine();
            //temp = "H8 H1 C7 C6 S2 D8 D2 C2 H2 H3 D3 C3 S3 H4 D4 C4 S7 H5 D5 D1 S6 H6 D6 C1 S1 H7 D7 C5 S8 S4 S5 C8 S9 H9 D9 C9";

            temp2= temp.Split(' ');

            for (int i = 0; i < number; i++)
            {
                input[i] = new data();
                input2[i] = new data();
                original[i] = new data();
                input[i].card = temp2[i];
                input2[i].card = temp2[i];
                original[i].card = temp2[i];
                input[i].number = int.Parse(temp2[i].Substring(1, 1));
                input2[i].number = int.Parse(temp2[i].Substring(1, 1));
                original[i].number = int.Parse(temp2[i].Substring(1, 1));
                position[input[i].number]++;

            }

            for(int i=0;i < number;i++)
            {
                for(int j=number-1;j>i;j--)
                {
                    if(input2[j].number < input2[j-1].number)
                    {

                        swap = input2[j];
                        input2[j] = input2[j-1];
                        input2[j-1] = swap;
                    }
                }

            }





            for (int i = 0; i < number; i++)
            {
                if (i == number - 1)
                    Console.Write("{0}", input2[i].card);
                else
                    Console.Write("{0} ", input2[i].card);
            }
            Console.Write("\n");
            if (stable2)
                Console.WriteLine("Stable");
            else
                Console.WriteLine("Not Stable");            
//----------------------------------------------------------------
            for (int i = 0; i < number; i++)
            {
                mini = i;
                for (int j = i; j <number; j++)
                {
                    if (input[j].number < input[mini].number)
                    {
                        mini = j;
                    }
                }
                if (i != mini)
                {
                    count++;
                    swap = input[i];
                    input[i] = input[mini];
                    input[mini] = swap;
                }

            }
            for (int i = 1; i < 10; i++)
            {
                int initial = 0;
                if (position[i] > 1)
                {
                    for (int j = 0; j < number; j++)
                    {
                        if (original[j].number == i)
                        {
                            for (int k = initial; k < number; k++)
                            {
                                if (input[k].number == i)
                                {
                                    if (original[j].card != input[k].card)
                                    {
                                        stable1 = false;
                                    }
                                    initial = k + 1;
                                    break;

                                }
                            }

                        }

                    }

                }



            }

            for (int i = 0; i < number; i++)
            {
                if(i == number-1)
                    Console.Write("{0}", input[i].card);
                else
                    Console.Write("{0} ", input[i].card);
            }
            Console.Write("\n");
            if (stable1)
                Console.WriteLine("Stable");
            else
                Console.WriteLine("Not stable");

        }
    }
}



Measured memory_bytes: 17936