/* prog6.1.c */
#include <stdio.h>
#include <stdlib.h>

typedef char Item;

#define key(A) (A)
#define less(A, B) (key(A) < key(B))
#define exch(A, B) { Item t = A; A = B; B = t; } 
#define compexch(A, B) if (less(B, A)) exch(A, B)

void dump_vetor(Item a[], int l, int r)
{
  int i;
  for (i=l; i<=r; i++) 
    printf("%c ", a[i]);
  printf("\n");
}

void bubble(Item a[], int l, int r)
  { int i, j;
    for (i = l; i < r; i++) {
      for (j = r; j > i; j--)
        compexch(a[j-1], a[j]);
      dump_vetor(a, l, r);
    }
  }

int main(int argc, char *argv[])
  { int i, N = atoi(argv[1]), sw = atoi(argv[2]);
    char *a = malloc(N);
    if (sw) 
      for (i = 0; i < N; i++) 
        a[i] = 1000*(1.0*rand()/RAND_MAX);
    else 
      while (scanf("%c", &a[N]) == 1) N++; 
    dump_vetor(a, 0, N-1);
    bubble(a, 0, N-1);
    printf("\n");
    return 0;
  }
