#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e9 + 7;
const long long N = 2e5 + 5;
long long n, k, id = 0, c;
long long A[N], B[N], ans = 2;
pair<long long, long long> p[10];
string q[N];
void solve() {
  long long i, j, a, b;
  cin >> q[0] >> n;
  q[0] = "0->" + q[0];
  for (i = 1; i < n + 1; i++) cin >> q[i];
  for (i = 0; i < 10; i++) p[i] = {i, 10};
  for (i = n; i > -1; i--) {
    pair<long long, long long> cur = {0, 1};
    for (j = 3; j < (long long)q[i].size(); j++) {
      cur.first =
          (cur.first * p[q[i][j] - '0'].second + p[q[i][j] - '0'].first) % inf;
      cur.second = cur.second * p[q[i][j] - '0'].second % inf;
    }
    p[q[i][0] - '0'] = cur;
  }
  cout << p[0].first;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long i, t = 1, j, first;
  while (t--) solve();
}
