#include <stdio.h>

typedef struct node_struct
  {
    long key;
    struct node_struct *link;
  }
node;

node *gb_sorted[256];
static node *alt_sorted[256];

void
gb_linksort (l)
     node *l;
{
  register long k;
  register node **pp;
  register node *p, *q;

  for (pp = alt_sorted + 255; pp >= alt_sorted; pp--)
    *pp = NULL;

  for (p = l; p; p = q)
    {
      k = p->key & 0xff;
      q = p->link;
      p->link = alt_sorted[k];
      alt_sorted[k] = p;
    }

  for (pp = gb_sorted + 255; pp >= gb_sorted; pp--)
    *pp = NULL;

  for (pp = alt_sorted; pp < alt_sorted + 256; pp++)
    for (p = *pp; p; p = q)
      {
	k = (p->key >> 8) & 0xff;
	q = p->link;
	p->link = gb_sorted[k];
	gb_sorted[k] = p;
      }

  for (pp = alt_sorted + 255; pp >= alt_sorted; pp--)
    *pp = NULL;

  for (pp = gb_sorted + 255; pp >= gb_sorted; pp--)
    for (p = *pp; p; p = q)
      {
	k = (p->key >> 16) & 0xff;
	q = p->link;
	p->link = alt_sorted[k];
	alt_sorted[k] = p;
      }

  for (pp = gb_sorted + 255; pp >= gb_sorted; pp--)
    *pp = NULL;

  for (pp = alt_sorted; pp < alt_sorted + 256; pp++)
    for (p = *pp; p; p = q)
      {
	k = (p->key >> 24) & 0xff;
	q = p->link;
	p->link = gb_sorted[k];
	gb_sorted[k] = p;
      }
}


main ()
{
  int j;
  long k;
  node *p, *q;

  p = NULL;

  while (scanf ("%ld", &k) > 0)
    {
      q = (node *) malloc (sizeof (node));
      q->key = k;
      q->link = p;
      p = q;
    }

  gb_linksort (p);

  for (j = 127; j >= 0; j--)
    {
      for (p = gb_sorted[j]; p; p = p->link)
	printf ("%ld\n", p->key);
    }
  return 0;
}
