#include <bits/stdc++.h>
using namespace std;
long long X1, X2, Y1, Y2;
void zY(long long _X1, long long _Y1, long long _X2, long long _Y2) {
  if ((_X2 - _X1) < (X2 - X1)) return;
  bool flag = false;
  if (_X1 < X1) flag = true;
  if (_X1 == X1 && _Y1 < Y1) flag = true;
  if (_X1 == X1 && _Y1 == Y1 && _X2 < X2) flag = true;
  if (_X1 == X1 && _Y1 == Y1 && _X2 == X2 && _Y2 < Y2) flag = true;
  if (flag) X1 = _X1, Y1 = _Y1, X2 = _X2, Y2 = _Y2;
}
long long gcd(long long a, long long b) {
  if (a < b) swap(a, b);
  long long c;
  while (a % b != 0) {
    c = a % b;
    a = b;
    b = c;
  }
  return b;
}
int main() {
  long long n, m, X, Y, a, b;
  while (scanf("%I64d%I64d%I64d%I64d%I64d%I64d", &n, &m, &X, &Y, &a, &b) !=
         EOF) {
    long long low = 1, up = max(n, m), mid = 0, div, DX, DY;
    long long cp = gcd(a, b);
    a /= cp, b /= cp;
    while (low <= up) {
      mid = (low + up) >> 1;
      if (mid * a <= n && mid * b <= m) {
        div = mid;
        low = mid + 1;
      } else
        up = mid - 1;
    }
    DX = div * a, DY = div * b;
    int large = (DX + 1) / 2;
    int small = DX - large;
    if (X >= large) {
      if (n - X >= small)
        X1 = X - large;
      else
        X1 = X - large - (small - n + X);
    } else
      X1 = 0;
    large = (DY + 1) / 2;
    small = DY - large;
    if (Y >= large) {
      if (m - Y >= small)
        Y1 = Y - large;
      else
        Y1 = Y - large - (small - m + Y);
    } else
      Y1 = 0;
    printf("%I64d %I64d %I64d %I64d\n", X1, Y1, X1 + DX, Y1 + DY);
  }
  return 0;
}
