1 #include <bits/stdc++.h>
2 #define maxn 1000
3 char num[33];
4 int len,q[maxn],Visited[11];
5 long long ans = 1;
6 int main ()
7 {
8 int i,j,k;
9 int K,x[16],y[16];
10 scanf ("%s%d",num,&K);
11 for (i = 1;i<=K;i++)
12 scanf ("%d%d",x+i,y+i);
13 len = strlen (num);
14 int head = 0,tail = 0,temp;
15 for (j = 0;j<len;j++)
16 {
17 temp = 1;
18 memset (Visited,0,sizeof(Visited));
19 q[++tail] = num[j]-'0';
20 do{
21 head++;
22 for (i = 1;i<=K;i++)
23 {
24 if (q[head] == x[i] && Visited[y[i]] == 0)
25 {
26 q[++tail] = y[i];
27 temp++;
28 Visited[x[i]] = 1;
29 Visited[y[i]] = 1;
30 }
31
32 }
33 }while (head<tail);
34 ans*=temp;
35 }
36 printf ("%lld",ans);
37 return 0;
38 }