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