#include <stdio.h>

#define TRUE 1
#define FALSE 0
#define NMAX 101

void leia_conjunto(int v[]);
void imprima_conjunto(int v[]);
void copie_conjunto(int a[], int b[]);
void intersecao(int c[], int a[], int b[]);
int pertence(int x, int a[]);

int main()
{
  int v[NMAX], w[NMAX], res[NMAX];
  int i, n;

  scanf("%d", &n);
  leia_conjunto(v);
  n--; 

  for (i=0; i<n; i++) {
    leia_conjunto(w);
    intersecao(res, v, w);
    copie_conjunto(v, res);
  }

  imprima_conjunto(res);
  
  return 0;
}

void leia_conjunto(int v[])
{
  int i;
  scanf("%d", &v[0]);
  for (i=1; i<=v[0]; i++)
    scanf("%d", &v[i]);
}

void imprima_conjunto(int v[])
{
  int i;
  for (i=1; i<=v[0]; i++)
    printf("%d ", v[i]);
  putchar('\n');
}

void copie_conjunto(int a[], int b[])
{
  int i;
  for (i=0; i<=b[0]; i++)
    a[i]=b[i];
}

int pertence(int x, int a[])
{
  int i;
  for (i=1; i<=a[0]; i++)
    if (a[i]==x)
      return TRUE;
  return FALSE;
}

void intersecao(int c[], int a[], int b[])
{
  int i;
  c[0]=0;
  for (i=1; i<=a[0]; i++)
    if (pertence(a[i], b))
      c[++c[0]]=a[i];
}

