#include<bits/stdc++.h>
using namespace std;
const int N=20,M=50;
int k;
char x[N],y[N];
string n;
int ln;
bool flag[M];
int ans=1;
void dfs(char c)
{
if(flag[c])
return;
flag[c]=1;
for(int i=1;i<=k;i++)
if(x[i]==c)
dfs(y[i]);
}
void init()
{
cin>>n;
ln=n.length();
cin>>k;
for(int i=1;i<=k;i++)
cin>>x[i]>>y[i];
}
void work()
{
for(int i=0;i<ln;i++)
{
dfs(n[i]);
int t=0;
for(int j='0';j<='9';j++)
{
if(flag[j])
t++;
flag[j]=0;
}
ans*=t;
}
}
void output()
{
cout<<ans<<endl;
}
int main()
{
init();
work();
output();
return 0;
}
本机上测试没有问题,但提交后WA。