#include <climits>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int m,n;
cin >> m;
vector<int> vi,vr;
while (m--) {
int a;
cin>>a;
vi.push_back(a);
}
cin>>n;
while (n--) {
int a;cin>>a;
vr.push_back(a);
}
sort(vr.begin(),vr.end());
auto contain=[](int a, int b) {
string sa=to_string(a);
string sb=to_string(b);
auto pos=sa.find(sb);
if (pos!=string::npos) return true;
return false;
};
int cnt=0;
int last=INT_MAX;
vector<int> res;
int pos=1;
for (auto r:vr) {
if (r==last) continue;
last=r;
int cnt=0;
for (int idx=0; idx<vi.size();idx++) {
if (contain(vi[idx], r)) {
if (cnt==0) {
res.push_back(r);
res.push_back(cnt);
}
res.push_back(idx);
res.push_back(vi[idx]);
cnt++;
}
}
if (cnt>0) {
res[pos]=cnt;
pos=pos+2+cnt*2;
}
}
cout<<res.size()<<" ";
for (auto i:res) cout<<i<<" ";
return 0;
}
// 64 位输出请用 printf("%lld")