#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
unsigned long long int ans=1,num[10];
int n,map[10][10];
char cur[50];
int main()
{
memset(map,127/3,sizeof(map));
int from,to;
scanf("%s",cur);
scanf("%d",&n);
//for(int i=0;i<=9;i++) num[i]=1;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&from,&to);
map[from][to]=1;
}
for(int k=0;k<=9;k++)
{
for(int j=0;j<=9;j++)
{
for(int i=0;i<=9;i++)
{
if(i!=j&&j!=k&&k!=i)
if(map[j][k]+map[k][i]<map[j][i])
{
map[j][i]=map[j][k]+map[k][i];
}
}
}
}
//for(int i=0;i<=9;i++) cout<<num[i]<<" ";
//cout<<endl;
for(int i=0;i<=9;i++)
{
num[i]++;
for(int j=0;j<=9;j++)
{
if(j==i) continue;
if(map[i][j]<10000) num[i]++;
}
}
for(int i=0;i<strlen(cur);i++) ans=(ans*num[(int)(cur[i]-'0')]);
cout<<ans<<endl;
return 0;
}