#include #include #include #define MAX 200001 int train[MAX]; int track[MAX]; int in[MAX]; int out[MAX]; int car, N, M; int maxdist, dist, pref; bool ok; 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; ok = true; for (i = 1; i <= N; i++) { scanf(" %d ", &car); maxdist = MAX; for (j = 1; j <= M; j++) { if (track[j] <= car) { dist = car - track[j]; if (dist < maxdist) { maxdist = dist; pref = j; } //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 (maxdist == MAX) { ok = false; } else { track[pref] = car; in[i] = pref; out[car] = pref; } } if (ok == true) { print(); } else { printf("Transportation failed\n"); } } return 0; }