import java.io.*; public class railway { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); public int[] readInt() throws IOException { String vstup = br.readLine(); String []rozdel = vstup.split("\t| "); int []vrat = new int[rozdel.length]; for (int i = 0; i < rozdel.length; i++) { vrat[i] = Integer.parseInt(rozdel[i].trim()); } return vrat; } public void solve() throws IOException{ while (true) { int []citaj = readInt(); int vozen = citaj[0]; int kolaji = citaj[1]; if (vozen == 0 && kolaji == 0) break; if(vozen == 0){ //System.out.println(); //System.out.println(); continue; } int []poradie = readInt(); int [][]ries = new int[kolaji][vozen + 2]; for (int i = 0; i < kolaji; i++) { for (int j = 0; j < 2; j++) { ries[i][j] = 0; } } boolean chyba = false; String vys = new String(); for (int i = 0; i < vozen; i++) { for (int j = 0; j <= kolaji; j++) { if (j == kolaji) { chyba = true; System.out.println("Transportation failed"); break; } if (ries[j][1] == 0) { ries[j][0] = poradie[i]; (ries[j][1])++; ries[j][1 + ries[j][1]] = poradie[i];; vys = vys + (j+1) + " "; break; } else { if (ries[j][0] <= poradie[i]) { ries[j][0] = poradie[i];; (ries[j][1])++; ries[j][1 + ries[j][1]] = poradie[i];; vys = vys + String.valueOf(j+1) + " "; break; } } } if (chyba) break; } if (chyba == false) { System.out.println(vys); for (int i = 0; i < vozen; i++) { int max = 200001; int index = 0; for (int j = 0; j < kolaji; j++) { if (ries[j][1] != 0) { if (ries[j][ries[j][1] + 1] < max) { max = ries[j][ries[j][1] + 1]; index = j; } } } System.out.print((index + 1) + " "); (ries[index][1])--; } System.out.println(); } } } public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub railway r = new railway(); r.solve(); } }