#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define fi first
#define se second
#define bit(n,i) (n>>i)&1
using namespace std;
const int N=1e3+5;
const int S=305;
string s;
int n;
int g[35][35];
vector<pii>luu;
bitset<S>L[S][35],R[S][35];
main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    freopen("transform.inp","r",stdin);
    freopen("transform.out","w",stdout);
    cin>>s;
    int m=s.size();
    s=' '+s;
    cin>>n;
    for(int i=1;i<=n;i++){
        char x,u,v;cin>>x>>u>>v;
        x-='a';u-='a';v-='a';
        if(!g[u][v])luu.push_back({u,v});
        g[u][v]|=(1ll<<x);
    }
    for(int i=1;i<=m;i++){
        int x=s[i]-'a';
        L[i][x].set(i);
        R[i][x].set(i-1);
    }
    for(int len=2;len<=m;len++){
        for(int i=1;i<=m-len+1;i++){
            int j=i+len-1;
            for(auto [u,v]:luu){
                if((L[i][u]&R[j][v]).any()){
                    for(int mask=g[u][v];mask;mask-=mask&-mask){
                        int x=__builtin_ctzll(mask);
                        L[i][x].set(j);
                        R[j][x].set(i-1);
                    }
                }
            }
        }
    }
    int ok=0;
    for(int x=0;x<26;x++)if(L[1][x][m])cout<<char(x+'a'),ok=1;
    if(!ok)cout<<"No Solution.";
    return 0;
}
