#include <bits/stdc++.h>
using namespace std;
long long int nwd(long long int a, long long int b) {
  if (b == 0) return a;
  return nwd(b, a % b);
}
vector<long long int> xx;
vector<long long int> yy;
long long int n, m, x, y, a, b;
long long int szer, wys;
long long int kw(long long int xxx) { return xxx * xxx; }
long long int odl(pair<long long int, long long int> v) {
  return kw(2LL * (v.first - x) + szer) + kw(2LL * (v.second - y) + wys);
}
bool lepszy(pair<long long int, long long int> p,
            pair<long long int, long long int> q) {
  if (odl(p) < odl(q)) return true;
  if (odl(q) < odl(p)) return false;
  return p < q;
}
int main() {
  cin >> n >> m >> x >> y >> a >> b;
  long long int k = nwd(a, b);
  long long int aprim = a / k;
  long long int granica = min((m * a) / b, n);
  szer = (granica / aprim) * aprim;
  wys = (b * szer) / a;
  xx.push_back(0);
  xx.push_back(1);
  xx.push_back(n - szer);
  xx.push_back(x - (szer / 2LL));
  xx.push_back(x - (szer / 2LL) + 1LL);
  xx.push_back(x - (szer / 2LL) + 2LL);
  xx.push_back(x - (szer / 2LL) - 1LL);
  xx.push_back(x - (szer / 2LL) - 2LL);
  yy.push_back(0);
  yy.push_back(1);
  yy.push_back(m - wys);
  yy.push_back(y - (wys / 2LL));
  yy.push_back(y - (wys / 2LL) + 1LL);
  yy.push_back(y - (wys / 2LL) + 2LL);
  yy.push_back(y - (wys / 2LL) - 1LL);
  yy.push_back(y - (wys / 2LL) - 2LL);
  pair<long long int, long long int> najl = make_pair(-1, -1);
  for (int i = 0; i < xx.size(); i++) {
    if (xx[i] < 0 || xx[i] + szer > n) continue;
    if (x < xx[i] || x > xx[i] + szer) continue;
    for (int j = 0; j < yy.size(); j++) {
      if (yy[j] < 0 || yy[j] + wys > m) continue;
      if (y < yy[j] || y > yy[j] + wys) continue;
      if (najl.first == -1 || lepszy(make_pair(xx[i], yy[j]), najl)) {
        najl = make_pair(xx[i], yy[j]);
      }
    }
  }
  cout << najl.first << " " << najl.second << " " << najl.first + szer << " "
       << najl.second + wys << "\n";
}
