#include #include #define NMAX 2000 #define MMAX 20000 using namespace std; ifstream fin ("tunel.in"); ofstream fout ("tunel.out"); int cautbin (int v[], int k, int y){ int st = 1; int dr = k; int ans = MMAX; while (st <= dr){ int mid = (st + dr) / 2; if (v[mid] <= y) { st = mid + 1; } else { ans = v[mid]; dr = mid - 1; } } return ans; } int mat[NMAX][MMAX]; int v[NMAX]; int main(){ int n, m, cer, k, x; fin >> cer; fin >> n >> m >> x; for (int i = 1; i <= n - 1; i++){ fin >> k; v[i] = k; for (int j = 1; j <= k; j++) fin >> mat[i][j]; } if (cer == 1){ int linc ,colc, t; int jos, sus; linc = x; colc = 0; while (colc < m){ if (linc < n) jos = cautbin(mat[linc], v[linc], colc); else jos = MMAX; if (linc > 1) sus = cautbin(mat[linc - 1], v[linc - 1], colc); else sus = MMAX; if(jos == MMAX && sus == MMAX) break; if (jos < sus) linc ++; else linc --; colc = min (jos, sus); } fout << linc; } return 0; }