import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String sint="\\d{1,}";//整数正则表达式
String sstr="[a-z[A-Z][0-9][.][-][_]]{1,}";//字符串正则表达式
String spath="[a-z[A-Z][0-9][.][-][_][/]]{1,}";//路径正则表达式
Scanner in=new Scanner(System.in);
int n=in.nextInt();
String[][] str=new String[n][2];// URL映射规则,str[][0]规则str[][1]参数
String[] strr=new String[n];//规则左边字符串按斜杆分割数组
int m=in.nextInt();
String[] strp=new String[m];
for(int i=0;i<n;i++)
{
str[i][0]=new String(in.next());
str[i][1]=new String(in.next());
String[] arry=str[i][0].split("/");//规则左边字符串按斜杆分割数组
strr[i]="/";//匹配正则字符串
for(int j=1;j<arry.length;j++)
{
if(arry[j].equals("<int>"))
strr[i]=strr[i].concat(sint);//正则表达式拼接
else if(arry[j].equals("<str>"))
strr[i]=strr[i].concat(sstr);
else if(arry[j].equals("<path>"))
strr[i]=strr[i].concat(spath);
else
strr[i]=strr[i].concat(arry[j]);
if(j!=arry.length-1)
strr[i]=strr[i]+"/";
else if(str[i][0].toCharArray()[str[i][0].length()-1]=='/')
strr[i]=strr[i]+"/";
}
//System.out.println(strr[i]);
}
for(int i=0;i<m;i++)
{
strp[i]=in.next();
int flag=0;
for(int j=0;j<n;j++)
{
if(strp[i].matches(strr[j])==true)//匹配成功
{
flag=1;
System.out.print(str[j][1]);
String[] arry1=str[j][0].split("/");
String[] arry2=strp[i].split("/");
for(int k=1;k<arry1.length;k++) {
if(arry1[k].equals("<int>")) {
System.out.print(" "+Integer.parseInt(arry2[k]));
}
else if(arry1[k].equals("<str>"))
System.out.print(" "+arry2[k]);
else if(arry1[k].equals("<path>"))
{
System.out.print(" ");
int indexsite=strp[i].indexOf(arry2[k-1]+"/");
System.out.print(strp[i].substring(indexsite+arry2[k-1].length()+1));
break;
}
}
if(flag==1)
System.out.println();
break;
}
}
if(flag==0)
System.out.println("404");
}
}
}