#include<bits/stdc++.h>
using namespace std;
string n;
int k,a[20],b[20];
bool vis[15];
long long ans=1,sum=0;
void dfs(int x){
if(vis[x]==1) return;
vis[x]=1;
for(int i=1;i<=k;i++){
if(a[i]==x && vis[b[i]]==0){
sum++;
dfs(b[i]);
}
}
}
int main(){
cin>>n;
cin>>k;
for(int i=1;i<=k;i++){
cin>>a[i]>>b[i];
}
int len=n.size();
for(int i=1;i<=len;i++){
sum=0;
memset(vis,0,sizeof(vis));
dfs(n[i-1]-'0');
ans*=(sum+1);
}
cout<<ans;
return 0;
}