#include <bits/stdc++.h>
using namespace std;
vector<int> all[500005];
int n, c, cnt[1000005];
void do_it(int x, int y) {
  if (x > y) {
    cnt[c - x + 1]++;
    cnt[c - y + 1]--;
    return;
  }
  cnt[0]++;
  cnt[c - y + 1]--;
  cnt[c - x + 1]++;
  cnt[c]--;
}
int main() {
  int i;
  scanf("%d", &n);
  scanf("%d", &c);
  for (i = 0; i < n; i++) {
    int len, j;
    scanf("%d", &len);
    for (j = 0; j < len; j++) {
      int x;
      scanf("%d", &x);
      all[i].push_back(x);
    }
    if (i) {
      for (j = 0; j < len && j < all[i - 1].size(); j++) {
        if (all[i - 1][j] != all[i][j]) {
          do_it(all[i][j], all[i - 1][j]);
          break;
        }
      }
      if (j == len && j < all[i - 1].size()) {
        printf("-1\n");
        return 0;
      }
    }
  }
  int tmp = 0;
  for (i = 0; i < c; i++) {
    tmp += cnt[i];
    if (!tmp) break;
  }
  if (i == c) {
    printf("-1\n");
    return 0;
  }
  printf("%d\n", i);
  return 0;
}
