import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //输入第一行
        String str1=sc.nextLine();
        String []str1_=str1.split(" ");
        //数据个数
        int n=Integer.parseInt(str1_[0]);
        //System.out.println(n);
        //数据
        int []data=new int [n];
        for(int i=0;i<n;i++)
            data[i]=Integer.parseInt(str1_[i+1]);
        //System.out.println(Arrays.toString(data));
        //输入第二行
        String str2=sc.nextLine();
        String []rules=str2.split(" ");
        int k=Integer.parseInt(rules[0]);
        //System.out.println(k);
        //规则集
        int []rule_=new int [k];
        for(int i=0;i<k;i++)
            rule_[i]=Integer.parseInt(rules[i+1]);
        //System.out.println(Arrays.toString(rule_));
        //利用hashSet去重
        Set<Integer> rule__=new HashSet<>();
        for(int x:rule_) 
            rule__.add(x);
        Integer []rule=rule__.toArray(new Integer[rule__.size()]);
        //排序
        //System.out.println(Arrays.toString(rule));
        Arrays.sort(rule);
        //System.out.println(Arrays.toString(rule));
        //开始输出
        int total=0;//数据总数
        StringBuilder ans=new StringBuilder();
	  	//遍历规则
        for(int i=0;i<rule.length;i++){
            int cnt=0;
            boolean flag=false;
            StringBuilder str=new StringBuilder();
            //遍历数据
            for(int j=0;j<n;j++){
                //当前数据包含规则集的值
                if(String.valueOf(data[j]).contains(String.valueOf(rule[i]))){
                    flag=true;
                    cnt++;
                    str.append(j+" "+data[j]+" ");
                }
            }
            if(flag){
                String temp=rule[i]+" "+cnt+" "+str;
                total+=(2+cnt*2);
                ans.append(temp);
                //System.out.println(ans);
            }
        }
        System.out.println(total+" "+ans);
    }
}