#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
long long mod_pow(long long a, long long b) {
  if (!b) return 1;
  long long c = mod_pow((a * a) % MOD, b / 2);
  return (b % 2 ? a * c : c) % MOD;
}
int n;
string s;
pair<int, string> q[100001];
long long val[10];
long long siz[10];
inline long long get_val(const string &t) {
  long long v = 0;
  for (const char &c : t) {
    int x = c - '0';
    v = (val[x] + v * mod_pow(10, siz[x])) % MOD;
  }
  return v;
}
inline long long get_siz(const string &t) {
  long long l = 0;
  for (const char &c : t) {
    int x = c - '0';
    l = (l + siz[x]) % (MOD - 1);
  }
  return l;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> s >> n;
  for (int i = 0; i < n; ++i) {
    string t;
    cin >> t;
    q[i].first = t[0] - '0';
    q[i].second = t.substr(3, t.size() - 3);
  }
  for (int i = 0; i < 10; ++i) {
    val[i] = i;
    siz[i] = 1;
  }
  for (int i = n - 1; i >= 0; --i) {
    val[q[i].first] = get_val(q[i].second);
    siz[q[i].first] = get_siz(q[i].second);
  }
  cout << get_val(s) << endl;
  return 0;
}
