#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,no-stack-protector")
#pragma GCC target("mmx,avx,fma")
#pragma GCC optimize("unroll-loops")
using namespace std;
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return a * b / gcd(a, b); }
signed main() {
  long long n, k;
  cin >> n >> k;
  long long a, b;
  cin >> a >> b;
  long long ans1 = 1e18;
  long long ans2 = 0;
  vector<long long> vec = {b - a, b + a, -a - b, a - b};
  for (long long i = 0; i < 4; i++) {
    long long c = (vec[i] + k) % k;
    for (long long z = 0; z * k + c <= n * k; z++) {
      if (z * k + c > 0) {
        long long ch = n * k / gcd(n * k, z * k + c);
        ans1 = min(ans1, ch);
        ans2 = max(ans2, ch);
      }
    }
  }
  cout << ans1 << " " << ans2 << '\n';
}
