tell
me
why
#include<iostream>
using namespace std;
int n[35],k,cnt;
bool can[15][15];
int a[15];
long long ans=1;
void dfs(int start,int now)
{
if(now==start) return;
can[start][now]=true;
for(int i=0;i<=9;i++)
if(can[now][i]&&i!=now)
dfs(start,i);
}
int main()
{
char c;
scanf("%c",&c);
while(c!=' ')
{
n[++cnt]=c-'0';
scanf("%c",&c);
}
scanf("%d",&k);
for(int i=1;i<=k;i++)
{
int x,y;
scanf("%d%d",&x,&y);
can[x][y]=true;
}
for(int i=0;i<=9;i++)
dfs(i,i);
for(int i=0;i<=9;i++)
for(int j=0;j<=9;j++)
if(can[i][j])//自己必须可以变成自己
a[i]++;
for(int i=1;i<=cnt;i++)
ans*=a[n[i]];
cout<<ans;
return 0;
}