from collections import defaultdict#导入包
l=input().split(' ')[1:]
R=input().split(' ')[1:]
R = [int(x) for x in R]#要先改格式不然会按字符串排序规则排序,比如说排成[16,26,4]
r=sorted(list(set((R))),reverse=False)
r = [str(x) for x in r]#再改回来,因为后面按字符串规则查找对应片段
a=defaultdict(list)#用这个函数可以自定义一个值为列表的字典
n=0#初始值
for i in range(len(r)):
    for j in range(len(l)):
        if len(r[i]) > len(l[j]):
            continue
        else:
            for k in range(len(l[j])):
                if l[j][k:k+len(r[i])]==r[i]:
                    if j not in a[r[i]]:
                        a[r[i]].append(j)
                        #以配对成功的r[i]为键,向它的值列表中添加l中对应索引号
                        
n+=2*(len(a))#这里算的是r[i]的个数和用于表示与r[i]匹配成功的l数量的数字(比如说题目的输出中的首个6)
for i in range(len(a)):
    b=2*(len(a[list(a.keys())[i]]))
    n+=b       #是每个l的索引号和l本身,所以一个l对应两个数字
print(n,end=' ')
for i in range(len(a)):
    print(list(a.keys())[i],end=' ')
    print(len(a[list(a.keys())[i]]),end=' ')
    for j in a[list(a.keys())[i]]:
        print(j,end=' ')
        print(l[j],end=' ')#输出