// i wants to take ioi
//binhtinhtutinkhongcaycunhungmotkhikhongcontutinnualatuyetvong
#include <bits/stdc++.h>

using namespace std;

#define int long long
#define nn "\n"
#define pi pair<int, int>
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define eb emplace_back
#define pb push_back
#define TASK " "

#define ms(a, x) memset(a, x, sizeof(a))
#define all(a) a.begin(), a.end()
#define All(a, n) a + 1, a + 1 + n

#define LOG 19


const int INF = 1e18;
const int mod = 1e9;
const int N = 1e5 + 5;
const int MOD = 998244353;
int bit[200000];
struct node{
	int kc, u, hk;
	bool operator<(const node& other) const {
        return kc > other.kc;
    }
};
struct edge{
	int v, w, h;
};
string s;
void nhap(){
    cin >> s;
}
void solve(){
    map<char, int> cnt;
    map<char, int> cur;
    int n; cin >> n;
    for(int i = 1; i <= n; i++){
        char c; int x;
        cin >> c >> x;
        cnt[c] = x;
    }
    int ans = 0;
    for(int i = 0; i < s.size(); i++){
        if(cnt.count(s[i])){
            if(cur[s[i]] == 0){
                ans++;
                cur[s[i]] = cnt[s[i]] - 1;
            }
            else{
                cur[s[i]]--;
            }
        }
        ans++;
    }
    cout << ans << nn;
}

signed main() {
	// freopen("piggyback.in", "r", stdin);
	// freopen("piggyback.out", "w", stdout);
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	nhap();
	int t; cin >> t;
	while(t--) solve();
	return (0 ^ 0);

}
