#include<iostream>#include<algorithm>#include<cstdio>#include<set>#include<sstream>#include<string>#include<queue>#include<stack>#include<map>#include<cmath>#include<cctype>#include<cstring>#include<cstdlib>#define MAXX 100005#define SIS std::ios::sync_with_stdio(false)#define ll long long#define INF 0x3f3f3f3f//#include<bits/stdc++.h>usingnamespace std;//const int MAX =100;constdouble PI =3.14159265359;//const int mod = 1e9 + 7;int n, m;struct node
{int x, y;ll num;booloperator<(const node other)const{return num > other.num;}};int trie[400001][26], len, root, tot,sum[400001];bool p;char s[12];voidinsert(){
len =strlen(s);
root =0;for(int i =0; i < len; i++){int id = s[i]-'a';if(!trie[root][id]) trie[root][id]=++tot;
sum[trie[root][id]]++;
root = trie[root][id];}}intsearch(){
root =0;
len =strlen(s);for(int i =0; i < len; i++){int id = s[i]-'a';if(!trie[root][id])return0;
root = trie[root][id];}return sum[root];}intmain(){while(gets(s)&&s[0]!='\0')insert();while(~scanf("%s", s)){//cout<<s<<endl;int ans =search();
cout << ans << endl;}return0;}