#include <bits/stdc++.h>
using namespace std;
char a[60];
int n,s=1,m;
int b[10][16];
int c[60];
int d[11];
bool g[11][10];
void su(int p)
{
int i,j,k;
if(d[p]==0)
return ;
for(i=1;i<=d[p];i++)
{
k=b[p][i];
if(g[p][k]==0)
{
g[p][k]=1;
s++;
su(k);
}
else
return ;
}
}
void souw(int p)
{
int i,j;
memset(g,0,sizeof(g));
if(p>m)
return;
j=c[p];
g[p][j]=1;
if(d[j]!=0)
su(j);
souw(p+1);
}
void sue(int p)
{
int i,j,k;
if(d[p]==0)
return ;
for(i=1;i<=d[p];i++)
{
k=b[p][i];
if(g[p][k]==0)
{
if(k==0)
{
g[p][k]=1;
su(0);
}
else
{
g[p][k]=1;
s++;
su(k);
}
}
else
return ;
}
}
void souww(int p)
{
int i,j,k;
memset(g,0,sizeof(g));
j=c[p];
g[p][j]=1;
if(d[j]!=0)
sue(j);
souw(p+1);
}
int main()
{
int i,j,k;
cin>>a;
m=strlen(a);
cin>>n;
for(i=1;i<=n;i++)
{
cin>>k;
d[k]+=1;
cin>>j;
b[k][d[k]]=j;
}
for(i=0;i<m;i++)
{
j=a[i]-'0';
c[i+1]=j;
}
souww(1);
cout<<s<<endl;
return 0;
}