#include <fstream>
#include <vector>
#include <unordered_set>
#include <algorithm>
#include <string>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
const int nmax = 10000000;
char s[nmax + 5];
unordered_set<long long> x;
char pat[30];
int sol;
int cl;
long long p3;
int main()
{
fin>>s;
while(fin>>pat)
{
long long q = 0;
cl=0;
for(int i=0;pat[i];i++)
q=q*3 + pat[i]-'a',cl++;
x.insert(q);
}
p3=1;
for(int i=1;i<cl;i++)
p3*=3;
long long q = 0;
for(int i=0;s[i];i++)
{
if(i >= cl)
q-=(s[i-cl]-'a')*p3;
q=q*3 + s[i]-'a';
if(i>=cl-1 && x.find(q)!=x.end())
sol++;
}
fout<<sol;
}