#include <iostream>
using namespace std;

int partition(int* list, int l, int r) {
  int pivot_val = list[l];
  for (;;) {
    while (list[l] < pivot_val)
      ++l;
    while (pivot_val < list[r])
      --r;
    if (r < l)
      return l-1;
    int temp = list[l];
    list[l] = list[r];
    list[r] = temp;
    ++l;
    --r;
    if (r < l)
      return l-1;
  }
}

void quicksort(int* list, int l, int r) {
  if (r <= l)
    return;
  int pivot = partition(list, l, r);
  quicksort(list, l, pivot);
  quicksort(list, pivot+1, r);
}

int main() {
  while (1) {
    int n;
    cout << "Length of sequence (0 terminates program)? ";
    cin >> n;
    if (n <= 0)
      break;
    int* list = new int[n];
    cout << "Input the sequence, separated by spaces: ";
    for (int i = 0; i < n; ++i)
      cin >> list[i];
    quicksort(list, 0, n-1);
    for (int i = 0; i < n; ++i)
      cout << list[i] << ' ';
    cout << endl;
    delete[] list;
  }
}

