#include<bits/stdc++.h>
using namespace std;
using P = pair<int, int>;
using ll = long long;
template<class T> inline bool chmax(T &a, T b) {if(a < b){a = b; return true;} return false;}
template<class T> inline bool chmin(T &a, T b) {if(a > b){a = b; return true;} return false;}
#define rep(i,n) for(int i = 0; i < (n); i++)

int h, w, a, b;

ll hanjo(vector<vector<bool>>& heya, int i, int j, int a, int b){
    if(a < 0 || b < 0) return 0;
    if(j >= w){ j = 0; ++i; }
    if(i >= h) return 1;
    if(heya[i][j]) return hanjo(heya, i, j+1, a, b);


    ll ans = 0;
    heya[i][j] = true;
    ans += hanjo(heya, i, j+1, a, b-1);
    heya[i][j] = false;

    if(j + 1 < w && !heya[i][j+1]){
        heya[i][j] = true;
        heya[i][j+1] = true;
        ans += hanjo(heya, i, j+1, a-1, b);
        heya[i][j] = false;
        heya[i][j+1] = false;
    }
    if(i + 1 < h && !heya[i+1][j]){
        heya[i][j] = true;
        heya[i+1][j] = true;
        ans += hanjo(heya, i, j+1, a-1, b);
        heya[i][j] = false;
        heya[i+1][j] = false;
    }
    return ans;
}

int main(){
    cin >> h >> w >> a >> b;
    vector<vector<bool>> heya(h, vector<bool>(w, false));
    cout << hanjo(heya, 0, 0, a, b) << endl;
    return 0;
}
#include <iostream>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <unordered_set>
#include <map>
#include <algorithm>
using namespace std;
using ll = long long;
#define rep(i, n) for(int i=0;i<(int)n;i++)

struct Edge {
  int to; // 隣接頂点番号
  long long w; // 重み
  Edge(int to, long long w) : to(to), w(w) {}
};
// using Graph = vector<vector<Edge> >
// using Graph = vector<vector<int> > 

struct UnionFind {
  vector<int> par, siz;

  UnionFind(int n) : par(n, -1), siz(n, 1) {}

  int root(int x) {
    if(par[x] == -1) return x;
    else return par[x] = root(par[x]);
  }

  bool issame(int x, int y) {
    return root(x) == root(y);
  }

  bool unite(int x, int y) {
    x = root(x); y = root(y);
    if(x == y) return false;

    if(siz[x] < siz[y]) swap(x, y);

    par[y] = x;
    siz[x] += siz[y];
    return true;
  }

  int size(int x) {
    return siz[root(x)];
  }
};

long long factorial(long long n) {
  if(n <= 0) return 1;

  long long fact = 0;
  for(long long i=1;i<=n;i++) fact *= i;
  return n;
}

long long aCb(long long a, long long b) {
  if(a < b) return 0;
  return factorial(a) / (factorial(a-b) * factorial(b));
}

int main() {
  ll A, B, C;
  cin >> A >> B >> C;

  ll pA = abs(A), pB = abs(B);

  if(C % 2 == 0) {
    if(pA == pB) cout << "=";
    if(pA > pB) cout << ">";
    if(pA < pB) cout << "<";
  } else {
    if(A == B) cout << "=";
    if(A > B) cout << ">";
    if(A < B) cout << "<";
  }
}