#include <bits/stdc++.h>
int M[1000000];
int main() {
  long long n, d, l, m;
  scanf("%I64d%I64d%I64d%I64d", &n, &d, &m, &l);
  long long x = 0, i, dp;
  dp = d % m;
  for (i = 1; dp; ++i) {
    x += dp;
    x %= m;
    if (x > l) break;
    if (M[x]) break;
    M[x] = i;
  }
  if (!dp || M[x])
    x = ((n - 1) * m + l) / d * d + d;
  else
    x = i * d;
  printf("%I64d\n", x);
  return 0;
}
