#include <bits/stdc++.h>
using namespace std;
string que[123456];
const long long mod = 1e9 + 7;
pair<long long, long long> dig[12];
long long power(long long p, long long n, long long mod) {
  long long ret = 1;
  while (n) {
    if (n & 1) ret = (ret * p) % mod;
    p = p * p % mod;
    n >>= 1;
  }
  return ret;
}
int main() {
  string s;
  int n;
  cin >> s >> n;
  for (int i = 0; i < 10; i++) dig[i] = make_pair(1, i);
  for (int i = 0; i < n; i++) cin >> que[n - i - 1];
  for (int i = 0; i < n; i++) {
    int d = que[i][0] - '0';
    long long mo = 0, le = 0;
    for (int j = 3; j < que[i].size(); j++) {
      int di = que[i][j] - '0';
      le += dig[di].first;
      mo *= power(10, dig[di].first, mod);
      mo += dig[di].second;
      mo %= mod;
    }
    le %= mod - 1;
    dig[d] = make_pair(le, mo);
  }
  long long mo = 0;
  for (int i = 0; i < s.size(); i++) {
    int d = s[i] - '0';
    mo *= power(10, dig[d].first, mod);
    mo += dig[d].second;
    mo %= mod;
  }
  cout << mo << endl;
  return 0;
}
