#include #include using namespace std; int rail; int used_count; int count; int fail; int vysl[220000]; int main() { multimap m; multimap md; while(scanf("%d%d", &count, &rail), count || rail){ m.clear(); int k=0; md.clear(); used_count=0; fail=0; int in; for(int i=0; i :: iterator it; it = m.lower_bound(in); if (it == m.end()) { //printf("a"); if(used_count(in,used_count)); md.insert(pair(-in,used_count++)); } else fail=1; }else { //printf("b"); //printf("<%d%d>",it->first, it->second); int tmp=it->second; vysl[k++]=tmp+1; m.erase(it); m.insert(pair(in, tmp)); md.insert(pair(-in, tmp)); } } if (fail) printf("Transportation failed\n"); else { printf("%d", vysl[0]); for(int i=1; i :: iterator it=md.begin(); printf("\n"); printf("%d",it->second+1); it++; for(;it!=md.end(); it++) printf(" %d",it->second+1); printf("\n"); } } return 0; }