#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=2e5+10;
map<string,int>f,fff;
string x[N];
int main(){

	int n; cin>>n;
	for(int i=0;i<n;i++){
		cin>>x[i];
		if(fff[x[i]]) continue;
		fff[x[i]]=1;
		int len=x[i].size();
		//for(int j=1;j<=len;j++){
			int ff=(x[i][0]=='!');
			f[x[i].substr(ff)]++;
//			for(int k=ff;k+j-1<len;k++){
//				f[x[i].substr(k,j)]++;
//			}
		//}
		//cout<<"check is "<<x[i].substr(0)<<endl;
	}
	int res=0;
	for(pair<string,int>i :f){
        if(i.second>1){
			res=1;
			cout<<i.first<<endl;
			break;
        }
	}
	if(!res){
		 cout<<"satisfiable"<<endl;
	}


    return 0;
}

#include <bits/stdc++.h>

#include <algorithm>
#include <iterator>
#include <vector>
// #include <atcoder/all>
// using namespace atcoder;

using namespace std;
using ll = long long;

int main() {
    ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int N;
    cin >> N;

    vector<string> n(N);
    vector<string> e(N);
    for (int i = 0; i < N; i++) {
        string s;
        cin >> s;
        if (s[0] == '!') {
            e.push_back(s.erase(0, 1));
        } else {
            n.push_back(s);
        }
    }

    sort(n.begin(), n.end());
    sort(e.begin(), e.end());

    vector<string> inter;
    set_intersection(n.begin(), n.end(), e.begin(), e.end(),
                     back_inserter(inter));
    string output = "satisfiable";
    for (int i = 0; i < inter.size(); i++) {
        if (inter[i] != "") output = inter[i];
    }
    cout << output << endl;

    return 0;
}
