#include <stdio.h>
#include <stdlib.h>
#include <string.h>


#define max 30000
#define row 1001
#define col 1001


int str_cmp(char* s1, char* s2)
{
   int i;

   for (i = 0; i < strlen(s1) && i < strlen(s2); i++)
   {
      if (s1[i] < s2[i])
      {
         return -1;
      }
      else if (s1[i] > s2[i])
      {
         return 1;
      }
   }

   if (strlen(s1) == strlen(s2))
   {
      return 0;
   }
   else if (strlen(s1) > strlen(s2))
   {
      return 1;
   }
   else
   {
      return -1;
   }


}


int main()
{
   char s[row][col];
   int i = 0, j = 0, k;
   int m = 0, n = 0;

   scanf("%d", &n);

   while (scanf("%s", s[i]) != EOF)
   {
      i++;
   }

   m = i;


   for ( i = 0; i < m; i++)
   {
      for (j = i + 1, n = i; j < m; j++)
      {
         if (str_cmp(s[j], s[n]) < 0)
         {
            n = j;
         }
      }

      if (n != i)
      {
         strcpy(s[m], s[i]);
         strcpy(s[i], s[n]);
         strcpy(s[n], s[m]);
      }
   }

   for (i = 0; i < m; i++)
   {
      puts(s[i]);
   }

   /*

   for (i = 0; i < m; i++)
   {
      if (s[i][0] == 0)
      {
         continue;
      }
      k = 0;
      for (j = 0, n = i; j < m; j++)
      {
         if (s[j][0] == 0)
         {
            continue;
         }

         if (str_cmp(s[j], s[n]) < 0)
         {
            n = j;
            k = 1;
         }
      }

      if (k != 0)
      {
         puts(s[n]);
         s[n][0] = 0;
         i = -1;
      }
      else
      {
         puts(s[i]);
         s[i][0] = 0;
      }
   }
   */

   return 0;
}