package hdu;
import java.util.Scanner;
/**
* @description Hdu1251 统计难题。 1. 建立字典树.
* 2.
* @author Alex
*
*/
public class Hdu1251_20120731_0 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Tries1 root = new Tries1();
String str;
while(!"".equals(str = in.nextLine())){
insert(root,str);
}
while(in.hasNextLine()){
str = in.nextLine();
System.out.println(query(root,str));
}
}
/**
* 查询以 str 为前缀的字符串个数.
* @param root
* @param str
* @return
*/
private static int query(Tries1 root, String str){
int i = 0, len = str.length();
Tries1 p = root;
for(i = 0; i < len; ++i){
if(p.getNext(str.charAt(i)-'a')!= null){
p = p.getNext(str.charAt(i)-'a');
}else{
return 0;
}
}
return p.getCount();
}
/**
* 根据字符串 str 构造字典树. 结点 count 值记录以此字符串为的前缀的数目.
* @param root
* @param str
*/
private static void insert(Tries1 root,String str){
Tries1 p = root;
int i, len = str.length();
for(i = 0; i < len; ++i){
if(p.getNext(str.charAt(i)-'a')!=null){
p = p.getNext(str.charAt(i)- 'a');
p.setCount();
}else{
p.setNext(str.charAt(i)- 'a');
p = p.getNext(str.charAt(i)- 'a');
}
}
}
}
class Tries1{
private int count;
private Tries1[] next;
public Tries1(){
count = 1;
next = new Tries1[26];
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public void setCount(){
++count;
}
public Tries1 getNext(int index){
return this.next[index];
}
public void setNext(int index){
this.next[index] = new Tries1();
}
}