#include <bits/stdc++.h>
using namespace std;
#pragma warning(disable : 4996)
unsigned long long nod(unsigned long long, unsigned long long);
int main(int argc, char **argv) {
  ifstream from;
  const int fin = 0;
  const int err = 0;
  const long long nmin = 1, nmax = 2000000000, mmin = 1, mmax = 2000000000;
  long long n, m, res, rt, i, j, k, ax, a, a1, b, b1, x, x0, x1, y, y0, y1, dxy;
  if (fin) from.open("test.txt");
  if (fin)
    from >> a >> b >> x >> y;
  else
    cin >> a >> b >> x >> y;
  dxy = nod(x, y);
  x0 = x / dxy;
  y0 = y / dxy;
  k = (a / x0 < b / y0) ? a / x0 : b / y0;
  x1 = k * x0;
  y1 = k * y0;
  cout << x1 << ' ' << y1 << endl;
  return 0;
}
unsigned long long nod(unsigned long long n, unsigned long long m) {
  unsigned long long r1, r2, r;
  if ((n == 0) || (m == 0)) {
    return 0;
  }
  if ((n == 1) || (m == 1)) {
    return 1;
  }
  if (n < m) {
    r = n;
    n = m;
    m = r;
  }
  r1 = n;
  r2 = m;
  r = r1 % r2;
  while (r > 0) {
    r1 = r2;
    r2 = r;
    r = r1 % r2;
  }
  return r2;
}
