#include <bits/stdc++.h>
using namespace std;

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

#define int                     long long int
#define ld                      long double
#define pb                      push_back
#define MOD                     1000000007
#define inf                     3e18
#define vi                      vector<int>
#define vld                     vector<ld>
#define pii                     pair<int,int>
#define mii                     map<int,int>
#define fi                      first
#define se                      second
#define fastIO                  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define db(...)                 __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) { cerr << " "<< name << " : " << arg1 <<'\n'; }
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
    const char* comma = strchr(names + 1, ',');
    cerr.write(names, comma - names) << " : " << arg1 << " | "; __f(comma + 1, args...);
}

typedef tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> pbds; 
		//order_of_key (k) : Number of items strictly smaller than k .
		//find_by_order(k) : K-th element in a set (counting from zero) (returns an iterator)           


void inp_out()
{
	#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
	freopen("debug.txt", "w", stderr);
	#endif
}

int32_t main()
{
	fastIO
	inp_out();
	
	int n; 
	cin >> n; 

	vector < string > a(n); 
	set < string > st; 

	for(int i = 0; i < n; ++ i)
	{
		cin >> a[i]; 
		st.insert(a[i]); 
	}

	for(int i = 0; i < n; ++ i)
	{
		string s = "!"; 
		s += a[i]; 
		if(st.find(s) != st.end())
		{ 
			cout << a[i]; 
			return 0; 
		}
	}

	cout << "satisfiable"; 

	return 0;
}
#include<bits/stdc++.h>
#define all(a) a.begin(), a.end()
#define put(i) cout<<fixed<<i<<endl
#define debug(i) cerr<<fixed<<i<<endl
#define debugl(a) for(auto x:a)cerr<<x<<' '; cout<<endl
#define rep(i,s,n) for(long long i=s;i<(long long)(n);i++)
using namespace std;
using ll = long long;

int main(){
    ll n; cin >> n;
    map<string,ll> mp,mp2;
    rep(i,0,n){
        string tmp; cin >> tmp;
        mp[tmp] = 0;
    }

    for(auto x:mp){
        if(x.first[0] == '!'){
            mp2[x.first.substr(1,x.first.size()-1)]++;
        }else{
            mp2[x.first]++;
        }
    }

    for(auto x:mp2){
        if(x.second > 1){
            put(x.first);
            return 0;
        }
    }
    put("satisfiable");
}
