#include int N; int pole[100000]; int step; int find_min(int i) { int j; int min = 100000; int index = 0; for (j = i; j < N; j++) { if (min > pole[j]) { min = pole[j]; index = j; } if (min == pole[j]) { if (step % 2 != 0) { min = pole[j]; index = j; } } } return index; } void reverse(int a, int b) { int j, tmp; int x = b; for (j = a; j <= b; j++, x--) { if (x < j) break; tmp = pole[j]; pole[j] = pole[x]; pole[x] = tmp; } /* int rev[b-a]; int x = a; for (j = b-a; j >= 0; j--, a++) { rev[j] = pole[a]; } for (j = 0; j < b-a; j++) { pole[j+a] = rev[j]; }*/ } int main() { while(1) { scanf("%d", &N); if (N == 0) break; int i; for (i = 0; i < N; i++) { scanf("%d", &pole[i]); } step = 0; for (i = 0; i < N; i++) { step++; int min = find_min(i); /* int y; for (y = 0; y < N; y++) { printf("%d ", pole[y]); } putchar('\n'); */ reverse(i, min); printf("%d ", min+1); } putchar('\n'); } return 0; }