 /* GO HARD OR GO HOME */

#include <iostream>
#include <bits/stdc++.h>
#include <iomanip>
 using namespace std;
 #define rep(i, a, b) for(int i = a; i <= (b); ++i)
 #define all(x) begin(x), end(x)
 #define sz(x) (int)(x).size()
 typedef long long ll;
 typedef pair<int, int> pii;
 typedef vector<ll> vi;
 #define fastio ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
 typedef long long ll;
 typedef unsigned long long ull;
 #define pq priority_queue
 #define F first
 #define S second
 #define pb push_back
 #define RANGE (r-l+1)
 #define CEIL(a,b) (((a)/(b))+(((a)%(b))?1:0))
 #define YES cout<<"Yes"<<endl
 #define NO cout<<"No"<<endl
void file() {
 #ifndef ONLINE_JUDGE
 freopen("input.txt", "r", stdin);
 freopen("output.txt", "w", stdout);
 #endif
}
void solve() {
    int n; cin >> n;
    pair<int, int> mp[26];
    int lengths[15];
    for(int i=0; i<26; i++) mp[i] = {-1, -1};
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s;
        lengths[i] = s.size();
        for (int j = 0; j < (int)s.size(); j++) {
            char c = s[j];
            mp[c - 'a'] = {i, j};
        }
    }
        string ability; cin >> ability;
        stack<pair<int, int>> st;
        int cnt =0; bool flag = 1;
        for (char c : ability) {
            if (mp[c -'a'].first == -1) {
                flag = 0;
                break;
            }
            int id = mp[c-'a'].first;
            int pos = mp[c-'a'].second;
            if (pos == 0) {
                cnt++;
                if (lengths[id] > 1) {
                    st.push({id, 0});
                }
            }
            else {
                if (st.empty()) {
                    flag = 0;
                    break;
                }
                pair<int, int> p = st.top();
                st.pop();
                if (p.first == id && p.second +1 == pos) {
                    if (pos < lengths[id] -1 ) {
                        st.push({id, pos});
                    }
                }
                else {
                    flag = 0;
                    break;
                }
            }
        }
    if (flag && st.empty()) {
        YES << cnt+1 << endl;
    }
    else {
        NO;
    }


}

int main() {
    file();
    fastio;
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    // solve();
}