public static void sort(string[] strarr)
 {
     StdRandom.shuffle(strarr);
     Quick3string.sort(strarr, 0, strarr.Length - 1, 0);
     if (!Quick3string.s_assertionsDisabled && !Quick3string.isSorted(strarr))
     {
         throw new AssertionError();
     }
 }
        /**/
        public static void main(string[] strarr)
        {
            string[] array = StdIn.readAllStrings();
            int      num   = array.Length;

            Quick3string.sort(array);
            for (int i = 0; i < num; i++)
            {
                StdOut.println(array[i]);
            }
        }
 private static void insertion(string[] array, int num, int num2, int num3)
 {
     for (int i = num; i <= num2; i++)
     {
         int num4 = i;
         while (num4 > num && Quick3string.less(array[num4], array[num4 - 1], num3))
         {
             Quick3string.exch(array, num4, num4 - 1);
             num4 += -1;
         }
     }
 }
        private static void sort(string[] array, int num, int num2, int num3)
        {
            if (num2 <= num + 15)
            {
                Quick3string.insertion(array, num, num2, num3);
                return;
            }
            int num4 = num;
            int num5 = num2;
            int num6 = Quick3string.charAt(array[num], num3);
            int i    = num + 1;

            while (i <= num5)
            {
                int num7 = Quick3string.charAt(array[i], num3);
                if (num7 < num6)
                {
                    int arg_47_1 = num4;
                    num4++;
                    int arg_47_2 = i;
                    i++;
                    Quick3string.exch(array, arg_47_1, arg_47_2);
                }
                else if (num7 > num6)
                {
                    int arg_5A_1 = i;
                    int arg_5A_2 = num5;
                    num5 += -1;
                    Quick3string.exch(array, arg_5A_1, arg_5A_2);
                }
                else
                {
                    i++;
                }
            }
            Quick3string.sort(array, num, num4 - 1, num3);
            if (num6 >= 0)
            {
                Quick3string.sort(array, num4, num5, num3 + 1);
            }
            Quick3string.sort(array, num5 + 1, num2, num3);
        }