#include <bits/stdc++.h>
using namespace std;
long long n, k;
long long f(long long a1, long long a2) {
  if (a1 < a2) {
    swap(a1, a2);
  }
  if (a2 == 0) {
    return a1;
  }
  return f(a1 % a2, a2);
}
long long get_min(long long x) {
  long long ans = 1e18;
  for (long long y = 0; y <= n + 2; y++) {
    if (k * y - x >= 0) {
      ans = min(ans, n * k / f(n * k, k * y - x));
    }
  }
  return ans;
}
long long get_max(long long x) {
  long long ans = 0;
  for (long long y = 0; y <= n + 2; y++) {
    if (k * y - x >= 0) {
      ans = max(ans, n * k / f(n * k, k * y - x));
    }
  }
  return ans;
}
signed main() {
  cin >> n >> k;
  long long a, b;
  cin >> a >> b;
  long long mini, maxi;
  mini = get_min(a + b);
  maxi = get_max(a + b);
  mini = min(mini, get_min(a - b));
  maxi = max(maxi, get_max(a - b));
  mini = min(mini, get_min(-a - b));
  maxi = max(maxi, get_max(-a - b));
  mini = min(mini, get_min(-a + b));
  maxi = max(maxi, get_max(-a + b));
  cout << mini << " " << maxi;
  return 0;
}
