#include #include #include #define MAX 200001 int train[MAX]; int track[MAX]; int in[MAX]; int out[MAX]; int car, N, M; int i,j; void print(void) { for (i = 1; i < N; i++) { printf("%d ", in[i]); } printf("%d\n", in[N]); for (i = 1; i < N; i++) { printf("%d ", out[i]); } printf("%d\n", out[N]); } int main(void) { for(;;) { scanf("%d %d\n", &N, &M); if ((N == 0) && (M == 0)) return 0; for (i = 1; i <= N; i++) track[i] = 0; bool ok = true; for (i = 1; i <= N; i++) { scanf(" %d ", &car); for (j = 1; j <= M; j++) { if (track[j] < car) { track[j] = car; in[i] = j; out[car] = j; // printf("vagon %d vjizdi na %d a vyjeze z %d\n", car, in[i], out[car]); break; } } if (track[j] != car) { ok = false; } } if (ok == true) { print(); } else { printf("Transportation failed\n"); } } return 0; }