#include <bits/stdc++.h>
using namespace std;
long long j, k, a, b, s, ss, l, m, n, t, d;
long long e, i, c[221];
vector<long long> p[111], q[111], r, v;
char w;
map<long long, long long> y, z;
long long too(long long i, long long j) {
  long long l = 0, d = 0;
  for (k = 0; k < q[i].size(); k++) {
    l += q[i][k];
    r.push_back(l);
  }
  l = 0;
  for (k = 0; k < q[j].size(); k++) {
    l += q[j][k];
    r.push_back(l);
  }
  l = r.size();
  sort(r.begin(), r.end());
  for (k = 0; k < l; k++) c[k] = 0;
  for (k = 0; k < l; k++) {
    long long x, a = 0, b = 0, e = 0;
    x = r[k];
    while (x > q[i][e] && e < q[i].size()) {
      a += p[i][e] * q[i][e];
      x -= q[i][e];
      e++;
    }
    if (e < q[i].size()) a += p[i][e] * x;
    x = r[k];
    e = 0;
    while (x > q[j][e] && e < q[j].size()) {
      b += p[j][e] * q[j][e];
      x -= q[j][e];
      e++;
    }
    if (e < q[j].size()) b += p[j][e] * x;
    if (a > b) c[k] = 1;
    if (a < b) c[k] = 2;
  }
  e = 0;
  while (c[e] == 0) e++;
  for (k = e + 1; k < l; k++) {
    if (c[k] == 0) c[k] = c[k - 1];
  }
  for (k = e + 1; k < l; k++)
    if (c[k] != c[k - 1]) d++;
  return d;
}
int main() {
  cin >> n >> s;
  for (i = 0; i < n; i++) {
    cin >> k;
    for (j = 0; j < k; j++) {
      cin >> a >> b;
      p[i].push_back(a);
      q[i].push_back(b);
    }
  }
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++) {
      ss += too(i, j);
      r = v;
    }
  }
  cout << ss;
  return 0;
}
