from __future__ import print_function
from sys import stdin

def printf(str, *args):
    print(str % args, end='')

MAX = 100   # 집합의 최대 크기를 위한 상수

# setout 함수가 주어진 집합을 출력
def setout(A):
    count = 0
    if 1 not in A:
        print("\u2205")
        return
    printf("{")
    for i in range(1,MAX+1):
        if A[i] == 1:
            if count != 0:
                printf(",")
            printf("%3d"%i)
            count = 1
    
    printf(" }\n")

# Union 함수가 집합 A와 B의 합집합을 계산해서 출력
def Union(A, B):
    temp = [0 for _ in range(0,MAX+1)]
    for i in range(1, MAX+1):
        if A[i] == 1 or B[i] == 1:
            temp[i] = 1
        else:
            temp[i] = 0

    setout(temp)

# Inter 함수가 집합 A와 B의 교집합을 계산해서 출력
def Inter(A, B):
    temp = [0 for _ in range(0,MAX+1)]
    for i in range(1, MAX+1):
        if A[i] == 1 and B[i] == 1:
            temp[i] = 1
        else:
            temp[i] = 0
    
    setout(temp)

# Minus 함수가 집합 A와 B의 차집합(A-B)을 계산해서 출력
def Minus(A, B):
    temp = [0 for _ in range(0,MAX+1)]
    for i in range(1, MAX+1):
        if A[i] == 1 and B[i] == 0:
            temp[i] = 1
        else:
            temp[i] = 0 
   
    setout(temp)

seta = [0 for _ in range(0,MAX+1)]    # 집합 A를 위한 0으로 초기화된 배열
setb = [0 for _ in range(0,MAX+1)]    # 집합 B를 위한 0으로 초기화된 배열

# 해당 프로그램에 대한 안내를 출력
print("\n\t\t\t\u250c---------------------------\u2510")
print("\t\t\t|    집합 연산 프로그램     |")
print("\t\t\t\u2514---------------------------\u2518\n\n")

# 집합 A에 대한 필요한 정보를 사용자로부터 입력받음
print("집합 A가 가질 원소의 개수를 입력하라.: " , end = "")
a_element = int(input())
print("%d" % a_element, "개의 집합 A의 원소들을 입력하라.: (원소 \u2208 [1;100], 원소 \u2208 \u2115 ) : ")
list = []
while len(list) < a_element:
    temp = stdin.readline().strip('\n').split()
    for i in temp:
        if seta[int(i)] == 1:
            print("\n집합 A가 중복된 원소를 갖는다. 원소를 하나 더 입력하라.: ")
        else:
            seta[int(i)] = 1
            list += str(i)

# 집합 B에 대한 필요한 정보를 사용자로부터 입력받음
print("\n집합 B가 가질 원소의 개수를 입력하라.: " , end = "")
b_element = int(input())
print("%d" % b_element, "개의 집합 B의 원소들을 입력하라.: (원소 \u2208 [1;100], 원소 \u2208 \u2115 ) : ")
list = []

while len(list) < b_element:
    temp = stdin.readline().strip('\n').split()
    for i in temp:
        if setb[int(i)] == 1:
            print("\n집합 B가 중복된 원소를 갖는다. 원소를 하나 더 입력하라.: ")
        else:
            setb[int(i)] = 1
            list += str(i)

# 집합 A를 출력
print("\nA =", end = " ")
setout(seta)

# 집합 B를 출력
print("B =", end = " ")
setout(setb)

# 집합 A와 B의 합집합을 계산해서 출력
print("A \u222A B = ", end = "")
Union(seta,setb)

# 집합 A와 B의 교집합을 계산해서 출력
print("A \u2229 B = ", end = "")
Inter(seta,setb)

# 집합 A와 B의 차집합(A-B)을 계산해서 출력
print("A \u2216 B = ", end = "")
Minus(seta,setb)

# 집합 A와 B의 차집합(B-A)을 계산해서 출력 
print("B \u2216 A = ", end = "")
Minus(setb,seta)

stdin.readline()
