import java.util.*;
public class Main {
public static void main(String[] args) {
// 标准输入
Scanner input = new Scanner(System.in);
// 整数序列
String I = input.nextLine();
// 规则序列
String R = input.nextLine();
// 将序列分割为字符串数组
String[] arrI = I.split(" ");
String[] arrR = R.split(" ");
// 定义TreeSet用于对规则序列去重排序
Set<Integer> set = new TreeSet<>();
// 遍历规则序列,逐个加入set
for (int i = 1; i < arrR.length; i++) {
set.add(Integer.parseInt(arrR[i]));
}
// 拼接最终结果
StringBuffer res = new StringBuffer();
// 记录结果中元素个数
int size = 0;
// 遍历去重排序后的规则序列
for (Integer rule : set) {
// 记录满足条件的I的个数
int count = 0;
// 记录满足条件的I的索引和I
StringBuffer temp = new StringBuffer();
for (int i = 1; i < arrI.length; i++) {
if (arrI[i].contains(String.valueOf(rule))) {
count++;
temp.append(i-1).append(" ");
temp.append(arrI[i]).append(" ");
}
}
// count大于0则将temp拼进结果
if (count > 0) {
res.append(rule).append(" ");
res.append(count).append(" ");
res.append(temp);
// 更新结果中元素个数
size += 2 * count + 2;
}
} // 遍历结束
// 输出结果
System.out.println(size + " " + res.toString());
}
}