#include <bits/stdc++.h>
#include <string>
#include <vector>
using namespace std;
//看看a包不包含t
bool t_in_I(int t,int a)
{
string s1=to_string(t);
string s2=to_string(a);
if(s1.length()>s2.length()) return false;
if(s2.find(s1)!=string::npos) return true;
return false;
}
int main() {
int N,m;
while(cin>>N)
{
vector<int> ans;//收集答案
vector<int> I(N,0);
for(int i=0;i<N;i++)
{
cin>>I[i];
}
cin>>m;
set<int> R;
int data;
while(m--)
{
cin>>data;
R.insert(data);
}
//以上处理输入
for(auto it:R)
{//从R依次中取出R<i>,对I进行处理,找到满足条件的I:
int t=it;
int cnt=0;
bool flag=0;//默认I中没有合适的
for(int i=0;i<I.size();i++)
{
if(t_in_I(t,I[i]))
{
if(flag==0)
{//有合适的
ans.push_back(t);
ans.push_back(-1);//先给满足条件的I的个数占个位,因为现在并不知道cnt是多少
flag=1;
}
ans.push_back(i);//满足条件的I在I序列中的位置索引(从0开始)
ans.push_back(I[i]);
cnt++;
}
}
if(cnt)
for(int i=0;i<ans.size();i++)
if(ans[i]==-1) ans[i]=cnt;
}
ans.insert(ans.begin(),1,ans.size());
for(int i=0;i<ans.size();i++) cout<<ans[i]<<" ";
cout<<endl;
}
}
// 64 位输出请用 printf("%lld")