#include <bits/stdc++.h>
using namespace std;
const double pi = 2 * acos(0.0);
long long int pow1(long long int n, long long int k) {
  long long int ret = 1;
  while (k) {
    if (k % 2 == 1) ret = (ret * n) % 1000000007;
    n = (n * n) % 1000000007;
    k /= 2;
  }
  return ret;
}
string s, s1;
int n;
string q[100000];
long long int A[10], len[10];
int main() {
  cin >> s;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> q[i];
  for (int i = 0; i < 10; i++) {
    A[i] = i;
    len[i] = 1;
  }
  for (int i = n - 1; i >= 0; i--) {
    int idx = q[i][0] - '0';
    long long int val = 0, val1 = 0;
    for (int j = 3; j < q[i].size(); j++) {
      int d = q[i][j] - '0';
      val = (val * pow1(10, len[d])) % 1000000007;
      val += A[d];
      val %= 1000000007;
      val1 += len[d];
      val1 %= (1000000007 - 1);
    }
    A[idx] = val;
    len[idx] = val1;
  }
  long long int ans = 0;
  for (int i = 0; i < s.size(); i++) {
    int d = s[i] - '0';
    ans = (ans * pow1(10, len[d]) + A[d]) % 1000000007;
  }
  printf("%lld\n", ans);
  return 0;
}
