// C++(GCC 9.2.1)
#include <bits/stdc++.h>
using namespace std;
#define repex(i, a, b, c) for(int i = a; i < b; i += c)
#define repx(i, a, b) repex(i, a, b, 1)
#define rep(i, n) repx(i, 0, n)
#define repr(i, a, b) for(int i = a; i >= b; i--)

int main(){
    
    // 1. 入力情報.
    int N;
    scanf("%d", &N);
    set<string> st;
    rep(i, N){
        char c[22];
        scanf("%s", c);
        string s(c);
        st.insert(s);
    }
    
    // 2. 不満な文字列があるか？
    string ans = "satisfiable";
    for(auto &p : st){
        if(p[0] != '!'){
            string q = '!' + p;
            if(st.count(q)){
                ans = p;
                break;
            }
        }
    }
    
    // 3. 出力.
    printf("%s\n", ans.c_str());
    return 0;
    
}
#include<iostream>
#include<map>
using namespace std;
const int MAXN=2e5+10;
int n;
string a[MAXN];
map<string,int> mp;
int main() {
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>a[i];
		
		if(a[i][0]=='!') {
			a[i]=a[i].substr(1,a[i].length()-1);
			if(mp[a[i]]==0) mp[a[i]]=2;
			else if(mp[a[i]]==1) {
				cout<<a[i]<<endl;
				return 0;
			}
		}

		else {
			if(mp[a[i]]==0) mp[a[i]]=1;
			else if(mp[a[i]]==2) {
				cout<<a[i]<<endl;
				return 0;
			}

		}
	}
	cout<<"satisfiable\n";
	return 0;
}