#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
#define M 100001
#define inf 2147483647
typedef long long ll;

int max(int a, int b) { return a > b ? a : b; }
int min(int a, int b) { return a < b ? a : b; }

inline void read(int &T) {
    int x = 0; bool f = 0; char c = getchar();
    while (c < '0' || c > '9') { if (c == '-') f = !f; c = getchar(); }
    while (c >= '0' && c <= '9') { x = x * 10 + c - '0'; c = getchar(); }
    T = f ? -x : x;
}

int a, b, x, y, ans = inf;

int main() {
    read(a), read(b), read(x), read(y);
    y = min(y ,2 * x);
    if (a > b) std::cout << x + abs((a - 1) - b) * y;
    if (a <= b) std::cout << x + abs(a - b) * y;
    //std::cout << ans << '\n';
    return 0;
}
#include <bits/stdc++.h>
//#include <ext/pb_ds/tree_policy.hpp>
//#include <ext/pb_ds/assoc_container.hpp>

//#define ordered_set tree<int, null_type, less<int >,rb_tree_tag, tree_order_statistics_node_update>
//using namespace __gnu_pbds;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#define ll long long
#define ld long double
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define vii vector<int>
#define vll vector<ll>
#define clr(v, d) memset(v,d,sizeof(v))
using namespace std;
const int N = 2e5 + 9;



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

    ll a,b,c;
    cin>>a>>b>>c;
    if(c&1){
        if(a>b)cout<<">\n";
        else if(b>a)cout<<"<\n";
        else cout<<"=\n";
    }
    else{
        a=abs(a);
        b=abs(b);
        if(a>b)cout<<">\n";
        else if(b>a)cout<<"<\n";
        else cout<<"=\n";
    }

    return 0;
}