#include <bits/stdc++.h>
char aq[30],iq[15][2];
int k,len,num[30],ans=1;
bool vis[15],sb[10];
void dfs(char a){
for(int j=0;j<k;j++) if(vis[j] && iq[j][0]==a-'0'){
vis[j]=false;
dfs(iq[j][1]);
sb[iq[j][1]]=true;
vis[j]=true;
}
return ;
}
int main(){
scanf("%s%d",aq,&k);
len=strlen(aq);
for(int i=0;i<k;i++){
scanf("%d%d",&iq[i][0],&iq[i][1]);
vis[i]=true;
}
for(int i=0;i<len;i++){
num[i]=1;
for(int j=0;j<10;j++) sb[j]=false;
dfs(aq[i]);
for(int j=0;j<10;j++) if(sb[j]) num[i]++;
ans*=num[i];
}
printf("%d",ans);
return 0;
}
2AC 3WA