#include #include #include #include using namespace std; int solve(int G, int N); int main() { int G, N; cin >> G >> N; while(G!=0 && N!=0) { solve(G, N); cin >> G >> N; } } int solve(int G, int N) { vector nump(G); vector > prefL(G); // INPUT for(int i=0; i< G; i++) { cin >> nump[i]; for(int j=0; j< N; j++) { int x; cin >> x; prefL[i].push_back(x); } } // RUN OFF vector pop(N, 0); list cLeft; for(int i=1; i<=N; i++) cLeft.push_back(i); for(int count=1; count < N; count++) { /* cout << "New List: " << endl; for(int i=0; i::iterator it=prefL[i].begin(); it!=prefL[i].end(); it++) cout << *it << " "; cout << endl; }*/ for(int i=0; i::iterator it=cLeft.begin(); it!=cLeft.end(); it++) { //cout << "testing: " << *it << ": " << pop[*it-1] << endl; //cout << "curr: " << leastI << ": " << pop[leastI-1] << endl; if(pop[*it-1] <= pop[leastI-1]) leastI = *it; } //cout << "Removing: " << leastI << endl; remove(cLeft.begin(), cLeft.end(), leastI); list::iterator it=cLeft.end(); it--; cLeft.erase(it); for(int i=0; i< G; i++) { remove(prefL[i].begin(), prefL[i].end(), leastI); list::iterator it=prefL[i].end(); it--; prefL[i].erase(it); } } cout << *(cLeft.begin()) << endl; }