#include <bits/stdc++.h>
using namespace std;
long long n, k;
long long a, b;
long long gcd(long long x, long long y) {
  if (x == 0) return y;
  if (y == 0) return x;
  if (x % y == 0) return y;
  if (y % x == 0) return x;
  if (x > y) {
    return gcd(x % y, y);
  }
  if (y > x) {
    return gcd(x, y % x);
  }
}
long long max_temp = 1, min_temp = 1000000000000000;
int main() {
  cin >> n >> k;
  cin >> a >> b;
  long long m = (k - a - b) % k;
  long long ui = 1ll * n * k - m;
  for (long long i = 0; i * k < ui; i++) {
    long long temp = m + i * k;
    long long r = gcd(temp, n * k);
    if (n * k / r > max_temp) {
      max_temp = n * k / r;
    }
    if (n * k / r < min_temp) {
      min_temp = n * k / r;
    }
  }
  m = (a - b + k) % k;
  ui = 1ll * n * k - m;
  for (long long i = 0; 1ll * i * k < ui; i++) {
    long long temp = m + i * k;
    long long r = gcd(temp, n * k);
    if (1ll * n * k / r > max_temp) {
      max_temp = 1ll * n * k / r;
    }
    if (1ll * n * k / r < min_temp) {
      min_temp = 1ll * n * k / r;
    }
  }
  cout << min_temp << " " << max_temp << endl;
  return 0;
}
