#include<bits/stdc++.h>
using namespace std;
typedef int t;
typedef long long ll;
ll dp[10005];
string d[26] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---",
"-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-",
".--", "-..-", "-.--", "--.."};
string w[10005];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int numtest;
cin >> numtest;
while (numtest--) {
memset(dp, 0, sizeof dp);
string s; cin >> s;
s = " " + s;
t n; cin >> n;
string x;
dp[0] = 1;
for(t i = 0; i < n; i++){
cin >> x;
for(t j = 0; j < x.size(); j++){
w[i] += d[x[j]-'A'];
}
}
for(t i = 1; i < s.size(); i++){
for(t j = 0; j < n; j++){
if(i < w[j].size()) continue;
if(s.substr(i-w[j].size()+1, w[j].size()) == w[j]){
dp[i] += dp[i-w[j].size()];
}
}
dp[i] %= 1000000;
}
cout << dp[s.size()-1] << '\n';
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBpbnQgdDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CmxsIGRwWzEwMDA1XTsKc3RyaW5nIGRbMjZdID0geyIuLSIsICItLi4uIiwgIi0uLS4iLCAiLS4uIiwgIi4iLCAiLi4tLiIsICItLS4iLCAiLi4uLiIsICIuLiIsICIuLS0tIiwKIi0uLSIsICIuLS4uIiwgIi0tIiwgIi0uIiwgIi0tLSIsICIuLS0uIiwgIi0tLi0iLCAiLi0uIiwgIi4uLiIsICItIiwgIi4uLSIsICIuLi4tIiwKIi4tLSIsICItLi4tIiwgIi0uLS0iLCAgIi0tLi4ifTsKc3RyaW5nIHdbMTAwMDVdOwppbnQgbWFpbigpewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCWludCBudW10ZXN0OwoJY2luID4+IG51bXRlc3Q7Cgl3aGlsZSAobnVtdGVzdC0tKSB7CiAgICAgICAgbWVtc2V0KGRwLCAwLCBzaXplb2YgZHApOwogICAgICAgIHN0cmluZyBzOyBjaW4gPj4gczsKICAgICAgICBzID0gIiAiICsgczsKICAgICAgICB0IG47IGNpbiA+PiBuOwogICAgICAgIHN0cmluZyB4OwogICAgICAgIGRwWzBdID0gMTsKICAgICAgICBmb3IodCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgIGNpbiA+PiB4OwogICAgICAgICAgICBmb3IodCBqID0gMDsgaiA8IHguc2l6ZSgpOyBqKyspewogICAgICAgICAgICAgICAgd1tpXSArPSBkW3hbal0tJ0EnXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IodCBpID0gMTsgaSA8IHMuc2l6ZSgpOyBpKyspewogICAgICAgICAgICBmb3IodCBqID0gMDsgaiA8IG47IGorKyl7CiAgICAgICAgICAgICAgICBpZihpIDwgd1tqXS5zaXplKCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYocy5zdWJzdHIoaS13W2pdLnNpemUoKSsxLCB3W2pdLnNpemUoKSkgPT0gd1tqXSl7CiAgICAgICAgICAgICAgICAgICAgZHBbaV0gKz0gZHBbaS13W2pdLnNpemUoKV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZHBbaV0gJT0gMTAwMDAwMDsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBkcFtzLnNpemUoKS0xXSA8PCAnXG4nOwoJfQoJCgkKfQo=