#include<iostream>
#include<cstring>
using namespace std;
unsigned long long a[30],b[10][10],v[10];
int dfs(int x){
unsigned long long w=0,ans=0;
for(unsigned long long y=0;y<10;y++){
if(b[x][y]&&!v[y]){
v[y]=1;
ans++;
ans+=dfs(y);
}
}
return ans;
}
int main(){
string s;
unsigned long long ans=1;
int k,x,y;
cin>>s>>k;
for(unsigned long long i=0;i<10;i++) b[i][i]=1;
while(k--){
cin>>x>>y;
b[x][y]=1;
}
for(unsigned long long i=0;i<s.length();i++){
a[i]=s[i]-'0';
memset(v,0,sizeof(v));
ans*=dfs(a[i]);
}
cout<<ans;
return 0;
}