#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > E;
bitset<1005> V, bt[1005], S[1005];
int n, x, y, leaf[1005];
int main() {
  scanf("%d", &n);
  if (n == 2) {
    printf("1 2");
    return 0;
  }
  for (int i = 1; i <= n; i++) {
    scanf("%d", &x);
    for (int j = 1; j <= x; j++) {
      scanf("%d", &y);
      bt[i][y] = 1;
    }
    for (int j = 1; j < i; j++) {
      bt[0] = (bt[i] & bt[j]);
      if (bt[0].count() == 2) {
        x = y = 0;
        for (int k = 1; k <= n; k++)
          if (bt[0][k]) {
            if (!x)
              x = k;
            else
              y = k;
          }
        if (S[x][y]) continue;
        V[x] = V[y] = S[x][y] = S[y][x] = 1;
        E.push_back(make_pair(x, y));
      }
    }
  }
  if (!E.size()) {
    for (int i = 2; i <= n; i++) printf("1 %d\n", i);
    return 0;
  }
  if (E.size() == 1) {
    x = y = 0;
    for (int i = 1; i <= n; i++)
      if (V[i]) {
        if (!x)
          x = i;
        else
          y = i;
      }
    for (int i = 1; i <= n; i++)
      if (bt[i].count() != n) {
        for (int j = 1; j <= n; j++)
          if (j != x) {
            if (bt[i][j])
              printf("%d %d\n", x, j);
            else
              printf("%d %d\n", y, j);
          }
        return 0;
      }
  }
  for (int i = 1; i <= n; i++)
    if (V[i]) {
      S[i][i] = 1;
      if (S[i].count() == 2) {
        for (int j = 1; j <= n; j++)
          if (!(((bt[j] & V) ^ S[i]).count())) {
            for (int k = 1; k <= n; k++)
              if ((bt[j][k]) && (!V[k])) {
                E.push_back(make_pair(i, k));
                leaf[k] = 1;
              }
            break;
          }
      }
    }
  for (int i = 1; i <= n; i++)
    if ((V[i]) && (S[i].count() != 2)) {
      for (int j = 1; j <= n; j++)
        if (!(((bt[j] & V) ^ S[i]).count())) {
          for (int k = 1; k <= n; k++)
            if ((bt[j][k]) && (!V[k]) && (!leaf[k])) {
              E.push_back(make_pair(i, k));
              leaf[k] = 1;
            }
          break;
        }
    }
  for (int i = 0; i < E.size(); i++) printf("%d %d\n", E[i].first, E[i].second);
}
