rt, b表示这个数能变成多少个数
#include<cstdio>
#include<cstring>
using namespace std;
int n, k, a[12], f[10][10], b[12];
char str[40];
int main(){
memset(a,0,sizeof(a));
scanf("%s",str+1);
// for(int i=1;i<=strlen(str+1);i++){
// a[str[i]-'0']++;
// }
scanf("%d",&k);
while(k--){
int x, y;
scanf("%d%d",&x,&y);
f[x][y] = 1;
}
for(int i=0;i<=9;i++) f[i][i] = 1;
for(int i=0;i<=9;i++)
for(int j=0;j<=9;j++)
for(int k=0;k<=9;k++)
if(f[i][k]&&f[k][j]) f[i][j] = 1;
// for(int i=0;i<=9;i++){
// for(int j=0;j<=9;j++)
// printf("%d ",f[i][j]);
// printf("\n");
// }
// return 0;
for(int i=0;i<=9;i++)
for(int j=0;j<=9;j++)
if(f[i][j]) b[i]++;
// for(int i=0;i<=9;i++) printf("%d ", b[i]);
long long ans = 1;
for(int i=1;i<=strlen(str+1);i++)
ans *= b[str[i]-'0'];
printf("%lld\n",ans);
return 0;
}