#include <bits/stdc++.h>
using namespace std;
const long double EPS = 1e-8;
const long double PI = acos(-1);
inline long double arg(long double a, long double b, long double c) {
  return acos((b * b + c * c - a * a) / (2 * b * c));
}
inline long double area_cir(pair<complex<long double>, long double> c) {
  return PI * c.second * c.second;
}
inline long double intersection_area(
    pair<complex<long double>, long double> a,
    pair<complex<long double>, long double> b) {
  long double d = abs(a.first - b.first);
  if (a.second + b.second < d + EPS) return 0;
  if (a.second < b.second) swap(a, b);
  if (b.second + d < a.second + EPS || b.second < EPS) return area_cir(b);
  long double t1 = arg(b.second, a.second, d), t2 = arg(a.second, b.second, d);
  long double tri =
      (a.second * a.second * sin(t1 * 2) + b.second * b.second * sin(t2 * 2)) /
      2.0;
  return a.second * a.second * t1 + b.second * b.second * t2 - tri;
}
int main() {
  long double w, h, A, B, AB;
  cout << fixed << setprecision(9);
  while (cin >> w >> h >> A >> B >> AB, w != 0) {
    long double ar = sqrt(A / PI), br = sqrt(B / PI);
    pair<complex<long double>, long double> a =
        pair<complex<long double>, long double>(complex<long double>(ar, ar),
                                                ar);
    complex<long double> l = complex<long double>(br, br),
                         r = complex<long double>(w - br, h - br);
    for (int azu = 0; azu < 100; azu++) {
      complex<long double> m = 0.5L * (l + r);
      pair<complex<long double>, long double> b =
          pair<complex<long double>, long double>(m, br);
      if (intersection_area(a, b) < AB)
        r = m;
      else
        l = m;
    }
    if (w + EPS < ar * 2 || h + EPS < ar * 2 || l.real() - br < -EPS ||
        l.imag() - br < -EPS || w + EPS < l.real() + br ||
        h + EPS < l.imag() + br) {
      cout << "impossible" << endl;
    } else if (!(abs((intersection_area(
                         a, pair<complex<long double>, long double>(l, br))) -
                     (AB)) < EPS)) {
      cout << "impossible" << endl;
    } else {
      cout << ar << " " << ar << " " << ar << " " << l.real() << " " << l.imag()
           << " " << br << endl;
    }
  }
}
