#include using namespace std; #define REP(i,n) for(int i=0;i P; const ll MOD=998244353; ll c[100010]; string b[100010],a[100010]; int main(void){ ll i,j; cin.tie(0); ios_base::sync_with_stdio(false); ll N; string T; cin >> N >> T; ll n=T.size(); for(i=1;i<=N;i++){ string s; cin >> s; ll m=s.size(); if(s!="~"){ for(j=0;j<=m-n;j++) if(T==s.substr(j,n)){ c[i]++; c[i]%=MOD; } if(m>=n-1){ b[i]=s.substr(0,n-1); a[i]=s.substr(m-n+1,n-1); }else{ b[i]=s; a[i]=s; } }else{ ll J,K; cin >> J >> K; ll p=b[J].size(),q=a[K].size(),d=0; if(p==n-1 && q==n-1){ b[i]=b[J]; a[i]=a[K]; string x=a[J]; x+=b[K]; for(j=0;j=n-1){ b[i]=x.substr(0,n-1); a[i]=x.substr(p+q-n+1,n-1); }else{ b[i]=x; a[i]=x; } for(j=0;j