//   |||   |||    |||||||    ||||    |||    |||    |||||||    ||||
//   ||| |||      |||        |||||   |||    ||         |||     ||| 
//   |||||        |||||||    ||| ||| |||           |||||||     ||| 
//   ||| |||          |||    |||   |||||           |||         ||| 
//   |||   |||    |||||||    |||    ||||           |||||||     |||
#include "bits/stdc++.h"
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;

using ll = long long;

typedef priority_queue<int, vector<int>, greater<int>> pqg;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>
    pbds;

#define F first
#define S second
#define ar array
#define pb push_back
#define pf push_front
#define pob pop_back
#define pof pop_front
#define lb lower_bound
#define ub upper_bound
#define fbo find_by_order
#define ook order_of_key
#define all(x) x.begin(), x.end()
#define INF 1000000000
#define pi acos(-1)
#define endl '\n'

void output_only(string filename)
{
#ifndef ONLINE_JUDGE
	freopen((filename + ".in").c_str(), "r", stdin);
	freopen((filename + ".out").c_str(), "w", stdout);
#endif
}

const ll MOD = 1e9+7;
const int mxN = 100005, dx[] = {1, 0, -1, 0}, dy[] = {0, 1, 0, -1};

/* DON'T GET STUCK ON ONE APPROACH */
void solve()
{
	ll a, b, c;
	cin >> a >> b >> c;
	
	if (c&1)
	{
		if (a >= 0 && b >= 0)
		{
			if (a == b) cout << "=" << endl;
			else if (a > b) cout << ">" << endl;
			else cout << "<" << endl;
		}
		else
		{
			if (a < 0 && b < 0) cout << (a < b ? ">" : "<") << endl;
	    	else cout << (a > b ? ">" : "<") << endl;
		}
	}
	else
	{
		a = abs(a), b = abs(b);
		if (a == b) cout << "=" << endl;
		else if (a > b) cout << ">" << endl;
		else cout << "<" << endl;
	}
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	int t = 1;
    // cin >> t;
	
	while (t--) solve();
	
	return 0;
}
#line 1 "c.cpp"
/*
   Author   : MatsuTaku
   Date     : 01/02/21
*/

#include <bits/stdc++.h>
using namespace std;
#line 2 "/mnt/c/Users/tkmma/competitive_programming/CPBF/library/include/cpmacro.hpp"
#define rep(i, n)         for (int i = 0; i < (n); i++)
using lint = long long int;
template<typename T>
using vvec = vector<vector<T>>;
template<typename T>
vvec<T> make_vvec(int n, int m, T v) { return vvec<T>(n, vector<T>(m, v)); }
template<typename T>
void chmax(T& dst, T x) { dst = max(dst, x); }
template<typename T>
void chmin(T& dst, T x) { dst = min(dst, x); }
#line 9 "c.cpp"

class Solver {
 public:
  void solve();
};

void Solver::solve() {
  int n; cin>>n;
  unordered_set<string> S, T;
  rep(i, n) {
    string s; cin>>s;
    if (s[0] == '!') {
      string t = s.substr(1);
      if (T.count(t) > 0) {
        cout << t << endl;
        return;
      }
      S.insert(t);
    } else {
      if (S.count(s)) {
        cout << s << endl;
        return;
      }
      T.insert(s);
    }
  }
  cout << "satisfiable" << endl;
}

int main() {
  cin.tie(nullptr); ios::sync_with_stdio(false);
  cout<<fixed<<setprecision(10);
  Solver().solve();
  return 0;
}
