#include<bits/stdc++.h>
using namespace std;
long long k,x[20],y[20],sum[15],num[35];
vector <int> num_to[13];
bool vis[35][15];
long long ans=1;
void dfs(int u,int k)
{
if(vis[u][k])
return;
else
{
vis[u][k]=true;
num[u]++;
for(int i=0;i<sum[k];i++)
{
if(!vis[u][num_to[k][i]])
{
dfs(u,num_to[k][i]);
}
}
}
}
int main ()
{
string n;
cin>>n>>k;
for(int i=1;i<=k;i++)
{
cin>>x[i]>>y[i];
num_to[x[i]].push_back(y[i]);
sum[x[i]]++;
}
for(int i=0;i<n.size();i++)
{
dfs(i+1,int(n[i]-'0'));
ans*=num[i+1];
}
cout<<ans<<"\n";
return 0;
}