#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC optimization("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("avx,avx2,fma")
using namespace std;
int main() {
  long long n, d, m, l;
  cin >> n >> d >> m >> l;
  for (int i = 1; i < n; i++) {
    long long x = (((m) * (i - 1) + d + l) / d) * d;
    if (x < (i * m) && x > ((i - 1) * (m) + l)) {
      cout << x;
      return 0;
    }
  }
  cout << (((m) * (n - 1) + d + l) / d) * d;
  return 0;
}
