#include<iostream>
#include<algorithm>
//#include<cstdio>
#include<cstring>
#define ll long long
#define endl '\n'
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define per(i,a,b) for(int i=(a);i>(b);i--)
#define N 1000100 //1e6+100
using namespace std;
string strn;
int k,x,y;
int num[40];
bool st[10][10];
bool pa[10][10];
int cnt[100];
int ans;
void dfs(int x){
rep(i,0,10){
if(st[x][i]&&!pa[x][i]){
pa[x][i]=true;
pa[i][x]=true;
ans++;
dfs(i);
}
}
}
void mul(int x){
int tmp=0;
rep(i,0,100){
cnt[i]=cnt[i]*x+tmp;
tmp=cnt[i]/10;
cnt[i]%=10;
}
}
int main(){
//ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>strn>>k;
for(int i=0;i<strn.size();i++){
num[i]=(char)strn[i]-'0';
}
// rep(i,0,10){
// st[i][i]=true;
// }
rep(i,0,k){
cin>>x>>y;
st[x][y]=true;
}
cnt[0]=1;
ll res=1;
int len=strn.size();
rep(i,0,len){
memset(pa,0,sizeof pa);
pa[i][i]=true;
ans=1;
dfs(num[i]);
mul(ans);
}
int i=99;
while(i>=0&&!cnt[i]) i--;
for(;i>=0;i--) cout<<cnt[i];
return 0;
}
我单单把mul函数拿出来测试是没啥问题的但是不知道为什么这个有问题