#include <bits/stdc++.h>
using namespace std;
struct P {
  long long x, y, z;
  bool operator<(const P &a) const { return x > a.x; }
};
int a, b, c, i, k, o[10002], d, e, dy[15] = {0, 0, -1, 1, -1, 1, -1, 1},
                                   dx[15] = {-1, 1, 0, 0, 1, 1, -1, -1};
int l[51];
long long x, y, z, n, m, v1, v2;
P u[100600];
int j[60];
priority_queue<int> q, q1;
stack<int> s;
map<int, int> p;
string r, r1;
bool as(P a, P b) { return a.x - a.y > b.x - b.y; }
long long f(long long a, long long b) {
  if (a < b) swap(a, b);
  for (; b;) {
    long long h = b;
    b = a % b;
    a = h;
  }
  return a;
}
int main() {
  scanf("%d %d %d %d", &a, &b, &c, &d);
  if (a % c == 0)
    n = a / c * b;
  else
    n = (a / c + 1) * b;
  m = d + b;
  if (n > m)
    puts("YES");
  else
    puts("NO");
}
