import java.util.*;

public class railway {

	private class vagon {
	
		int cislo;
		vagon next;
		vagon last;

		public vagon(int cislo_) {
			cislo = cislo_;
		}
	}

	railway() {
		Scanner sc = new Scanner(System.in);
		int vagonu = sc.nextInt();
		int koleji = sc.nextInt();
		while(vagonu != 0 && koleji != 0) {
			vagon[] pole = new vagon[koleji];
			boolean jdeTo = true;
			int[] proTisk = new int[vagonu];
			int index = 0;
			for(int i = 0; i < vagonu; i++) {
				int j = 0;
				int vag = sc.nextInt();
				while(true) {
					if(pole[j] == null) {
						pole[j] = new vagon(vag);
						pole[j].last = pole[j];
						proTisk[index++] = (j+1);
						break;
					}
					else if (pole[j].last.cislo <= vag) {
						pole[j].last.next = new vagon(vag);
						pole[j].last = pole[j].last.next;
						proTisk[index++] = (j + 1);
						break;
					}
					j++;
					if (j >= koleji) {
						jdeTo = false;
						sc.nextLine();
						break;
					}
				}
				if (!jdeTo) break;
			}
			if (jdeTo) {
				//System.out.println("..."+Arrays.toString(proTisk)+"...");
				for (int i = 0; i < proTisk.length; i++) {
					if (i != (vagonu - 1)) System.out.print("" + proTisk[i] + " ");
					else System.out.print(proTisk[i]);
				}
				System.out.println();
				for(int i = 0; i < vagonu; i++) {
					int min = 0;
					for (int j = 0; j < pole.length; j++) {
						if (pole[j] == null) continue;
						if (pole[j].cislo < pole[min].cislo) min = j;
					}
					if (i < (vagonu-1)) {
						System.out.print("" + (min+1) + " ");
						if (pole[min].next != null) pole[min] = pole[min].next;
						else pole[min] = new vagon(Integer.MAX_VALUE);
					}
					else System.out.print(""+(min+1));
				}
			}
			else System.out.print("Transportation failed");
			vagonu = sc.nextInt();
			koleji = sc.nextInt();
			System.out.println();
		}
	}
	
	public static void main(String[] args) {
		new railway();
	}
}