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());  
    }
}