#include<bits/stdc++.h>
typedef long long int ll;
using namespace std;
int main()
{
    ll n;
    cin>>n;
    ll i,j=0;
    string s,x,p,h[n+5];
    map<string,ll>a,b;
    for(i=0;i<n;i++){
        cin>>h[i];
        s=h[i];
        if(s[0]!='!'){
            x="!";
            x+=s;
            a[x]++;
        }
        else{
            b[s]++;
        }
    }
    for(i=0;i<n;i++){
            s=h[i];
        if(a[s]&&b[s]){
            for(ll g=1;g<s.size();g++)
                cout<<s[g];
            cout<<endl;
            return 0;
        }
    }
    puts("satisfiable");


}

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=200010;
char p[maxn][12];
const ll mod=1000000009651;
struct pair_hash
{
    template<class T1, class T2>
    std::size_t operator() (const std::pair<T1, T2>& p) const
    {
        auto h1 = std::hash<T1>{}(p.first);
        auto h2 = std::hash<T2>{}(p.second);
        return h1 ^ h2;
    }
};
unordered_map<pair<ll,ll>,int,pair_hash>mp;
int main(){
    int n;
    char q[12];
    scanf("%d",&n);
    int num=0;
    ll k,f;
    for(int i=1;i<=n;i++){
        getchar();
        scanf("%s",q);
        if(q[0]!='!'){
            k=0;
            f=0;
            int w=strlen(q);
            for(int i=0;i<w;i++){
                k=(k*109139+(int)q[i])%mod;
                f=(f*8893+(int)q[i])%mod;
            }
            mp[make_pair(k,f)]=1;
        }
        else strcpy(p[num++],q);
    }
    int flag=0;
    for(int i=0;i<num;i++){
        k=0;
        f=0;
        int w=strlen(p[i]);
        for(int j=1;j<w;j++){
                k=(k*109139+(int)p[i][j])%mod;
                f=(f*8893+(int)p[i][j])%mod;
        }
        if(mp[make_pair(k,f)]>0){
             for(int j=1;j<w;j++){
               printf("%c",p[i][j]);
        }
            flag=1;
            break;
        }
    }
    if(flag==0)printf("satisfiable\n");
}