#include <bits/stdc++.h>
using namespace std;
int k, n[20], a[20][5010], g[32768], f[32768], hsh[301781], ps[301781],
    ans1[20], ans2[20], vis[20], TMS;
pair<int, int> md[32768];
long long sm[20];
int get(int x) {
  int y = (x + 1000000001) % 301781;
  while (hsh[y] && hsh[y] ^ x + 1000000001) y = (y + 1) % 301781;
  return y;
}
void dg(int x, int s1, int s2) {
  if (x == k) {
    f[s2 + s1] |= f[s1] * g[s2];
    return;
  }
  dg(x + 1, s1, s2);
  dg(x + 1, s1, s2 + (1 << x));
  dg(x + 1, s1 + (1 << x), s2);
}
int main() {
  scanf("%d", &k);
  long long S = 0;
  for (int i = 0; i < k; ++i) {
    scanf("%d", n + i);
    for (int j = 0; j < n[i]; ++j) {
      int x;
      scanf("%d", &x);
      a[i][j] = x;
      sm[i] += x;
      S += x;
      int w = get(x);
      ps[w] = i;
      hsh[w] = x + 1000000001;
    }
  }
  if (S % k != 0) {
    printf("No");
    return 0;
  }
  S /= k;
  for (int i = 0; i < k; ++i)
    for (int j = 0; j < n[i]; ++j) {
      int st = 1 << i, nw = i;
      long long c = S - (sm[i] - a[i][j]);
      int P = 1;
      ++TMS;
      for (;;) {
        vis[nw] = TMS;
        if (abs(c) > 1000000000) {
          P = 0;
          break;
        }
        int w = get(c);
        if (!hsh[w]) {
          P = 0;
          break;
        }
        st |= 1 << ps[w];
        if (ps[w] == i) {
          P = c == a[i][j];
          break;
        }
        c = S - (sm[ps[w]] - c);
        nw = ps[w];
        if (vis[nw] == TMS) {
          P = 0;
          break;
        }
      }
      if (P) {
        md[st] = make_pair(i, j);
        g[st] = 1;
      }
    }
  f[0] = 1;
  dg(0, 0, 0);
  if (f[(1 << k) - 1]) {
    printf("Yes\n");
    int ST = (1 << k) - 1;
    while (ST) {
      for (int _ = ST; _; _ = (_ - 1) & ST)
        if (g[_] * f[ST - _]) {
          int i = md[_].first, j = md[_].second, nw = i;
          long long c = S - (sm[i] - a[i][j]), ls = a[i][j];
          for (;;) {
            int w = get(c);
            ans1[ps[w]] = c;
            ans2[ps[w]] = nw;
            if (ps[w] == i) break;
            ls = c;
            nw = ps[w];
            c = S - (sm[ps[w]] - c);
          }
          ST -= _;
          break;
        }
    }
    for (int i = 0; i < k; ++i) printf("%d %d\n", ans1[i], ans2[i] + 1);
  } else {
    printf("No");
  }
}
