#include <iostream>
#include <fstream>
#include <unordered_map>
#define MOD 666013
#define NMAX 1000001
#define CMAX 21
#define DMAX 50001
using namespace std;
ifstream in("abc2.in");
ofstream out("abc2.out");
char s[NMAX];
char q[CMAX];
unordered_map<int,int> m;
int x,a[NMAX],d[DMAX],c,n,p,cuv;
int pow(int x,int n)
{
int rez = 1;
while(n>0)
{
if(n%2==1)
{
n--;
rez = rez*x%MOD;
}
n = n/2;
x = x*x%MOD;
}
return rez%MOD;
}
int main()
{
in >> s;
for(n=0;s[n]!='\0';n++)
{
a[n] = s[n]-'a'+1;
}
while(in >> q)
{
for(cuv=0;q[cuv]!='\0';cuv++)
{
//cout << p << " ";
d[c] = (d[c]*10+(q[cuv]-'a'+1))%MOD;
}
c++;
}
int h = 0;
for(int i=0;i<cuv;i++)
{
h = (h*10 + a[i])%MOD;
}
m[h] = 1;
for(int i=cuv;i<n;i++)
{
h = ((h-(h/pow(10,(cuv-1))%MOD*pow(10,cuv-1)))*10+ a[i])%MOD;
m[h] = 1;
}
int contor=0;
for(int i=0;i<c;i++)
{
if(m[d[i]]==1)
{
contor++;
m[d[i]] =1;
}
}
out << contor;
return 0;
}