#include <iostream>
using namespace std;
const int M = 20;
const int N = 20;
void Intersection ( int A[],int B[],int I[]);
void Union(int A[],int B[],int U[]);
int main()
{
int i,number1,number2;
int A[M];
int B[N];
int I[M];
int U[M];
char operation;
cin>>operation;
while(operation != 'E')
{
switch(operation)
{
case 'A':
{
cin>>number1;
A[0] = number1;
for(i = 1; i < number1 + 1; i ++)
{
cin>>A[i];
}
break;
}
case 'B':
{
cin>>number2;
B[0] = number2;
for(i = 1; i < number2 + 1; i ++)
{
cin>>B[i];
}
break;
}
case 'I':
{
Intersection(&A[0],&B[0],&I[0]);
for(i = 1; i < I[0] + 1; i ++)
{
cout<<I[i]<<endl;
}
break;
}
case 'U':
{
Union(& A[0],& B[0],&U[0]);
for(i = 1; i < U[0] + 1; i ++)
{
cout<<U[i]<<endl;
}
break;
}
default:
{
break;
}
}
cin>>operation;
}
return 0;
}
void Intersection ( int A[],int B[],int I[])
{
int i;
int j;
int k = 0;
for(i = 1; i < A[0] + 1; i ++)
{
for(j = 1; j < B[0] + 1; j ++)
{
if(A[i] == B[j])
{
k++;
I[k] = A[i];
j = B[0] + 1;
}
}
}
I[0] = k ;
}
void Union(int A[],int B[],int U[])
{
int i;
int j;
int t;
int k = 0;
int count;
for(i = 0; i < A[0]+1; i++)
{
U[i] = A[i];
}
count = A[0];
for(i = 1; i < B[0] + 1; i ++)
{
t = 0;
for(j = 1; j < A[0] + 1; j ++)
{
if(B[i] != A[j])
{
t++;
}
else
{
j = A[0] + 1;
}
}
if(t == A[0])
{
count ++;
U[count] = B[i];
}
}
U[0] = count;
}