#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000000 + 7;
long long len[10], val[10];
pair<int, string> rules[100002];
string x;
int m;
void init() {
  for (int i = 0; i <= 9; i++) len[i] = 1, val[i] = i;
}
void read() {
  cin >> x >> m;
  string s;
  for (int i = 1; i <= m; i++) {
    cin >> s;
    int d = s[0] - '0';
    if (s.length() == 3)
      rules[i] = make_pair(d, "");
    else
      rules[i] = make_pair(d, s.substr(3));
  }
  rules[0] = make_pair(0, x);
}
long long get_mod(long long a, long long b, long long modd) {
  long long res = 1;
  while (b > 0) {
    if (b % 2 == 1) res = (res * a) % modd;
    b = b / 2;
    a = (a * a) % modd;
  }
  return res;
}
void solve() {
  for (int i = m; i >= 0; i--) {
    string &s = rules[i].second;
    int d = rules[i].first;
    if (s.length() != 0) {
      long long v = 0, l = 0;
      for (int j = s.length() - 1; j >= 0; j--) {
        int dd = s[j] - '0';
        v += (get_mod(10, l, mod) * val[dd]) % mod;
        l += len[dd] % (mod - 1);
      }
      val[d] = v % mod;
      len[d] = l % (mod - 1);
    } else
      val[d] = len[d] = 0;
  }
}
int main() {
  init();
  read();
  solve();
  cout << val[0] << endl;
  return 0;
}
