while True:
    try:
        I = input().split()  //将输入的字符分隔,变成列表
        I_str = I[1:]//取数量后面的全部数据
        R = input().split()
        R_str = sorted(list(map(int,set(R[1:]))))//将列表变成无重复数据集合,然后map成int类型的列表,再进行排序
        re={}//空字典备用
        for r in R_str://遍历R_str
            count = 0//每一个r需要单独记录含有的数的个数总和
            u=[]//每一个r遍历后的结果做一个列表,所以每一次需要从空列表开始
            for x in range(len(I_str))://取下标数
                if str(r) in I_str[x]://判断r是否在当前I_str的字符串中存在
                    count+=1//存在,就个数加1
                    u.append(x)//将位置索引存在列表中
                    u.append(I_str[x])//将字符串也存在列表中
                else:
                    continue//不存在就继续循环查看下一个
            if count != 0 ://如果有与r相同的就记录,没有就不记录
                re[r] = {count:u}
        out = []
        for a in re:
            out.append(a)//取出r
            for b in re[a]:
                out.append(b)//取出含有r字符串的个数
                for c in re[a][b]:
                    out.append(c)//取出所有含有r的字符串
        print(len(out),' '.join([str(j) for j in out]))//遍历取出数据

    except:
        break