#include using namespace std; #define NELEMENT_MAX 10000 int msort( int A[], int size, int BUF[] ) { if ( size <= 1 ) return 0; const int nl = size / 2; const int nr = size - nl; int *L = A; int *R = A + nl; int result = 0; result += msort(L, nl, BUF); result += msort(R, nr, BUF); int cl = 0, cr = 0, cm = 0; while ( cl < nl && cr < nr ) if ( L[cl] < R[cr] ) BUF[cm++] = L[cl++]; else BUF[cm++] = R[cr++], result += nl - cl; while ( cl < nl ) BUF[cm++] = L[cl++]; while ( cr < nr ) BUF[cm++] = R[cr++]; for ( int i = 0; i < size; i++ ) A[i] = BUF[i]; return result; } int countInversion( int A[], int size ) { int BUF[NELEMENT_MAX]; return msort(A, size, BUF); } int main() { int nelement, nline, A[NELEMENT_MAX]; cin >> nelement >> nline; int maxInversionNum = -1, maxLine; for ( int n = 0; n < nline; n++ ) { for ( int i = 0; i < nelement; i++ ) cin >> A[i]; const int ninversion = countInversion(A, nelement); if ( ninversion > maxInversionNum ) maxInversionNum = ninversion, maxLine = n; } cout << maxLine + 1 << endl; return 0; }