#include<iostream>
#include
<cstring>
using namespace std;
struct Trie
{
    Trie 
*next[26];
    
int cnt;
};
Trie 
*head;
char tmp[15];
int build()
{
    head
=new Trie;
    
int i;
    
for(i=0;i<26;i++)
    {
        head
->next[i]=NULL;
    }
    head
->cnt=0;
    
return 0;
}
int insert(char c[])
{
    
int i,j;
    Trie 
*t,*s=head;
    
int len=strlen(c);
    
for(i=0;i<len;i++)
    {
        
if(s->next[c[i]-'a']==NULL)
        {
            t
=new Trie;
            
for(j=0;j<26;j++)
            {
                t
->next[j]=NULL;
            }
            t
->cnt=0;
            s
->next[c[i]-'a']=t;
           
        }
        s
=s->next[c[i]-'a'];
        s
->cnt++;
    }
    
return 0;
}
int check(char c[])
{
    
int count;
    
int i,j;
    Trie 
*s=head;
    
int len=strlen(c);
    
for(i=0;i<len;i++)
    {
        
if(s->next[c[i]-'a']==NULL)
        {  
            count
=0;
            
return count;
        }
        
else
        {    
            s
=s->next[c[i]-'a'];
            count
=s->cnt;
        }
    }
    
return count;
}
int main()
{
    build();
    
while(gets(tmp),strcmp(tmp,""))
    {
        insert(tmp);
    }
    
while(gets(tmp))
    {
        cout
<<check(tmp)<<endl;
    }
    
//system("pause");
    return 0;
}