#include <bits/stdc++.h>
using namespace std;
int m, n, odl[100001];
int st[100001], dia[100001], pot[100001];
int odl2[100001], dia2[100001], pot2[100001], pocz[100001];
vector<int> gdzie[100001], d[100001];
priority_queue<pair<int, int> > kol;
queue<int> kol2;
bool cz[100001];
void add(int kt) {
  if (odl[st[kt]] == -1 || odl[st[kt]] > dia[kt]) {
    odl[st[kt]] = dia[kt];
    kol.push(make_pair(-dia[kt], st[kt]));
  }
}
void add2(int kt) {
  if (odl2[st[kt]] < dia2[kt]) odl2[st[kt]] = dia2[kt];
  pocz[st[kt]]--;
  if (pocz[st[kt]] == 0) kol2.push(st[kt]);
}
int main() {
  scanf("%d", &m);
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    odl[i] = -1;
    odl2[i] = -1;
  }
  for (int i = 0; i < m; i++) {
    scanf("%d", &st[i]);
    st[i]--;
    pocz[st[i]]++;
    int pom;
    scanf("%d", &pom);
    while (pom--) {
      int pom2;
      scanf("%d", &pom2);
      pom2--;
      if (pom2 == -2) {
        dia[i]++;
        dia2[i]++;
      } else {
        pot[i]++;
        pot2[i]++;
        gdzie[pom2].push_back(i);
        d[st[i]].push_back(pom2);
      }
    }
    if (pot[i] == 0) add(i);
  }
  while (kol.empty() == 0) {
    pair<int, int> ak = kol.top();
    kol.pop();
    int nr = ak.second;
    if (-ak.first != odl[nr]) continue;
    for (int i = 0; i < gdzie[nr].size(); i++) {
      int pom = gdzie[nr][i];
      pot[pom]--;
      dia[pom] += odl[nr];
      if (dia[pom] > 314000000) dia[pom] = 314000000;
      if (pot[pom] == 0) add(pom);
    }
  }
  for (int i = 0; i < n; i++) {
    if (odl[i] == -1) {
      for (int j = 0; j < gdzie[i].size(); j++) {
        int pom = gdzie[i][j];
        if (cz[pom] == 0) {
          cz[pom] = 1;
          pot2[pom] = -1;
          pocz[st[pom]]--;
        }
      }
    }
  }
  for (int i = 0; i < m; i++) {
    if (pot2[i] == 0) add2(i);
  }
  while (kol2.empty() == 0) {
    int nr = kol2.front();
    kol2.pop();
    for (int i = 0; i < gdzie[nr].size(); i++) {
      int pom = gdzie[nr][i];
      pot2[pom]--;
      dia2[pom] += odl2[nr];
      if (dia2[pom] > 314000000) dia2[pom] = 314000000;
      if (pot2[pom] == 0) add2(pom);
    }
  }
  for (int i = 0; i < n; i++) {
    if (odl[i] == -1) {
      printf("-1 -1\n");
    } else {
      printf("%d ", odl[i]);
      if (pocz[i] == 0)
        printf("%d\n", odl2[i]);
      else
        printf("-2\n");
    }
  }
}
