#include <bits/stdc++.h>
using namespace std;
using LL = long long;
using PII = pair<int, int>;
void NO() {
  cout << "No\n";
  exit(0);
}
int vals[15][5000], sz[15], cycle[15][5000];
LL sum[15];
bool poss[1 << 15];
PII par[1 << 15];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  memset(par, -1, sizeof par);
  int k;
  cin >> k;
  map<LL, PII> loc;
  LL total = 0;
  for (int i = 0; i < k; i++) {
    cin >> sz[i];
    for (int j = 0; j < sz[i]; j++) {
      cin >> vals[i][j];
      sum[i] += vals[i][j];
      loc[vals[i][j]] = {i, j};
    }
    total += sum[i];
  }
  if (total % k != 0) NO();
  LL average = total / k;
  for (int i = 0; i < k; i++) {
    for (int j = 0; j < sz[i]; j++) {
      if (sum[i] == average) {
        cycle[i][j] = 1 << i;
        continue;
      }
      LL curr = average - (sum[i] - vals[i][j]);
      int idx = i, mask = 0;
      while ((mask & (1 << idx)) == 0) {
        if (loc.count(curr) == 0) {
          mask = 0;
          break;
        }
        mask |= (1 << idx);
        auto [ii, jj] = loc[curr];
        idx = ii;
        curr = average - (sum[idx] - vals[idx][jj]);
      }
      if (mask & (1 << i)) {
        if (mask ^ (1 << i)) {
          if (idx == i && curr == average - (sum[i] - vals[i][j])) {
            cycle[i][j] = mask;
          }
        }
      }
    }
  }
  poss[0] = true;
  for (int mask = 1; mask < (1 << k); mask++) {
    int i;
    for (i = 0; i < k; i++) {
      if (mask & (1 << i)) break;
    }
    for (int j = 0; j < sz[i]; j++) {
      if (cycle[i][j] != 0 && (mask & cycle[i][j]) == cycle[i][j] &&
          poss[mask ^ cycle[i][j]]) {
        poss[mask] = true;
        par[mask] = {i, j};
        break;
      }
    }
  }
  if (!poss[(1 << k) - 1]) NO();
  vector<PII> ans(k);
  for (int mask = (1 << k) - 1; mask != 0;) {
    auto [i, j] = par[mask];
    int idx = i;
    LL curr = average - (sum[i] - vals[i][j]);
    do {
      ans[loc[curr].first] = {curr, idx};
      idx = loc[curr].first;
      int j = loc[curr].second;
      curr = average - (sum[idx] - vals[idx][j]);
    } while (idx != i);
    mask ^= cycle[i][j];
  }
  cout << "Yes\n";
  for (auto [x, i] : ans) {
    cout << x << ' ' << (i + 1) << endl;
  }
  return 0;
}
