/* prog3.17a.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Nmax 1000
#define Mmax 10000

#define exch(A, B) { char *t = A; A = B; B = t; } 
#define compexch(A, B) if (strcmp(B, A)<0) exch(A, B)

char buf[Mmax]; int M = 0;

void sort(char *a[], int l, int r)
  { int i, j; 
    for (i = l+1; i <= r; i++)
      for (j = i; j > l; j--) 
        compexch(a[j-1], a[j]);
  }

int main()
  { int i, N;
    char *a[Nmax]; 
    for (N = 0; N < Nmax; N++)
      {
        a[N] = &buf[M];
        if (scanf("%s", a[N]) == EOF) break;
        M += strlen(a[N])+1;
      }
    sort(a, 0, N - 1);
    for (i = 0; i < N; i++) printf("%s\n", a[i]);
    return 0;
  }
