#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma target("sse", "sse1")
using namespace std;
mt19937 gen(42);
long long n, k, a, b;
long long dp[100001];
long long mians = 1e18, maans, mians2 = 1e18, maans2;
long long nod(long long a, long long b) {
  while (b != 0) {
    a %= b;
    swap(a, b);
  }
  return a;
}
void check1(long long c) {
  if (c < 0) c += k;
  maans = max(maans, n * k / nod(n * k, nod(k, c)));
  long long d = nod(k, c);
  long long ost = n * k;
  ost /= nod(ost, d);
  long long kk = k, cc = c;
  kk /= d;
  cc /= d;
  ost /= nod(ost, cc);
  for (int i = 2; i <= k; i++) dp[i] = 0;
  for (long long i = 2; i * i <= kk; i++)
    while (kk % i == 0) {
      kk /= i;
      dp[i]++;
    }
  if (kk > 1) dp[kk]++;
  long long domn = 1;
  for (long long i = 2; i <= k; i++)
    if (dp[i] > 0)
      while (ost % i == 0) {
        domn *= i;
        ost /= i;
      }
  mians = min(mians, domn);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> k >> a >> b;
  long long c1 = a - b, c2 = a + b, c3 = -a - b, c4 = -a + b;
  mians = 1e15;
  maans = 0;
  check1(c1);
  check1(c2);
  check1(c3);
  check1(c4);
  cout << mians << ' ' << maans << '\n';
  return 0;
}
