#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define n_l '\n'
#define dbg(...) cout << "[" << #__VA_ARGS__ << "]: "; cout << to_string(__VA_ARGS__) << endl
template <typename T, size_t N> 
int SIZE(const T (&t)[N])
{ 
    return N; 
} 
template<typename T> 
int SIZE(const T &t)
{ 
    return t.size(); 
} 
string to_string(const string s, int x1=0, int x2=1e9)
{ 
    return '"' + ((x1 < s.size()) ? s.substr(x1, x2-x1+1) : "") + '"'; 
} 
string to_string(const char* s) 
{ 
    return to_string((string) s); 
} 
string to_string(const bool b) 
{ 
    return (b ? "true" : "false"); 
} 
string to_string(const char c)
{ 
    return string({c}); 
} 
template<size_t N> 
string to_string(const bitset<N> &b, int x1=0, int x2=1e9)
{ 
    string t = ""; 
    for(int __iii__ = min(x1,SIZE(b)),  __jjj__ = min(x2, SIZE(b)-1); __iii__ <= __jjj__; ++__iii__)
    { 
        t += b[__iii__] + '0'; 
    } 
    return '"' + t + '"'; 
} 
template <typename A, typename... C> 
string to_string(const A (&v), int x1=0, int x2=1e9, C... coords); 
int l_v_l_v_l = 0, t_a_b_s = 0; 
template <typename A, typename B> 
string to_string(const pair<A, B> &p) 
{ 
    l_v_l_v_l++; 
    string res = "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; l_v_l_v_l--; 
    return res; 
} 
template <typename A, typename... C> 
string to_string(const A (&v), int x1, int x2, C... coords) 
{ 
    int rnk = rank<A>::value; string tab(t_a_b_s, ' '); 
    string res = ""; 
    bool first = true; 
    if(l_v_l_v_l == 0) 
        res += n_l; 
   res += tab + "["; 
   x1 = min(x1, SIZE(v)), x2 = min(x2, SIZE(v)); 
   auto l = begin(v); 
   advance(l, x1); 
   auto r = l; 
   advance(r, (x2-x1) + (x2 < SIZE(v))); 
   for (auto e = l; e != r; e = next(e)) 
   { 
        if (!first)
        { 
            res += ", "; 
        } 
        first = false; 
        l_v_l_v_l++; 
        if(e != l)
        { 
            if(rnk > 1) 
            {
                 res += n_l; 
                 t_a_b_s = l_v_l_v_l; 
            }; 
       } 
       else{
        t_a_b_s = 0; 
      } 
      res += to_string(*e, coords...); 
      l_v_l_v_l--; 
    } 
    res += "]"; 
    if(l_v_l_v_l == 0) 
        res += n_l; 
    return res; 
} 
void dbgm(){;} 
template<typename Heads, typename... Tails> 
void dbgm(Heads H, Tails... T)
{ 
    cout << to_string(H) << " | "; dbgm(T...); 
} 
#define dbgm(...) cout << "[" << #__VA_ARGS__ << "]: "; dbgm(__VA_ARGS__); cout << endl
    
void solve() {
        ll n;
        cin>>n;
        unordered_set<string>s;
        vector<string>vec;   
        for(ll i=0;i<n;i++)
        {
            string t;
            cin>>t;
            if(t[0]=='!')
            {
                string sub=t.substr(1);
                s.insert(sub);
                continue;
           }
           vec.push_back(t);
       }
       //dbg(s);
       for(auto x:vec)
       {
            if(s.find(x)!=s.end()){
                cout<<x<<"\n";
                return;
           }
       }
       cout<<"satisfiable"<<"\n";
}
int main()
{ 
    
    ll t=1;
    //cin>>t;
    while(t--){
       solve();
    }
    return 0;
}
#include<bits/stdc++.h>
 
 
#define  all(v)            v.begin(), v.end()
#define  sz(x)             (int)x.size()
#define  debug(x)          cerr << #x << ':' << x << endl;
#define  rep(i,n)          for(long long i = 0; i <  n ; i++)
#define  reps(i,n)         for(long long i = 1; i <= n ; i++)
#define  make_unique(v)    sort(all(v));v.erase(unique(all(v)), v.end());
#define  REMOVE(v,a)       v.erase(remove(v.begin(),v.end(), a), v.end());
#define  pb                push_back
#define  mp                make_pair
#define  endl              '\n'
#define  fi                first
#define  se                second
 
 
using namespace std;
typedef long long          ll;
typedef vector<long long>  vll;
typedef pair<ll,ll>        pll;
const ll MOD = 1e9+7;
bool cmp(int X, int Y) {return X > Y;}
 
ll gcd(ll a, ll b) {return !b ? a : gcd(b, a % b);}
ll lcm(ll a, ll b) {return (a / gcd(a, b)) * b;}
ll modpow(ll a, ll b, ll m=MOD){a %= m; ll res = 1; while (b) {if (b & 1)res = (res * a) % m; a = (a * a) % m; b >>= 1;} return res;}
ll bpow(ll a, ll b){if(b<0){return 0;}ll res = 1; while (b) {if (b & 1)res = res * a; a = a * a; b >>= 1;} return res;}
ll modinv(ll a, ll m = MOD) {return modpow(a, m - 2, m);}
 
const int N = 100005;
const int dx4[4] = {0, 1, 0, -1};
const int dy4[4] = {-1, 0, 1, 0};
 
ll vis[N];
 
int main(){
	ll n;cin>>n;
	ll a[n];
	ll gd = 0;
	rep(i,n){
		cin>>a[i];
		gd  = gcd(gd,a[i]);
	}
cout<<gd;
}



