#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
double PI = acos(-1);
struct Point {
  double x, y;
  Point(double x_, double y_) : x(x_), y(y_) {}
  Point operator-(const Point& a) const { return Point(x - a.x, y - a.y); }
};
double norm(const Point& a) { return a.x * a.x + a.y * a.y; }
double abs(const Point& a) { return sqrt(norm(a)); }
double angle(double a, double b, double c) {
  return acos((b * b + c * c - a * a) / (2.0 * b * c));
}
struct Circle {
  Point c;
  double r;
  Circle(Point c_, double r_) : c(c_), r(r_) {}
  double area() const { return PI * r * r; }
};
int intersect(const Circle& a, const Circle& b) {
  double d = abs(a.c - b.c);
  if (a.r + b.r + EPS < d) return 0;
  if (b.r + d + EPS < a.r) return -3;
  if (a.r + d + EPS < b.r) return -4;
  if (fabs(a.r + b.r - d) < EPS) return 1;
  if (fabs(a.r + d - a.r) < EPS) return 3;
  if (fabs(a.r + d - b.r) < EPS) return 4;
  return 2;
}
double inter(const Circle a, const Circle b) {
  int ci = intersect(a, b);
  if (ci == 0 || ci == 1) return 0.0;
  if (ci == 3 || ci == -3) return b.area();
  if (ci == 4 || ci == -4) return a.area();
  double d = abs(a.c - b.c);
  double s1 = angle(b.r, a.r, d), s2 = angle(a.r, b.r, d);
  double tri = (a.r * a.r * sin(2.0 * s1) + b.r * b.r * sin(2.0 * s2)) / 2.;
  return a.r * a.r * s1 + b.r * b.r * s2 - tri;
}
int UW, UH, A, B, AB;
double calcr(double S) {
  double lb = 0.0, ub = 1e5;
  for (int rep = (0); rep < (50); ++rep) {
    double med = (lb + ub) / 2.;
    if (PI * med * med < S)
      lb = med;
    else
      ub = med;
  }
  return ub;
}
void putd(double d) { cout << setprecision(9) << setiosflags(ios::fixed) << d; }
void puts() { cout << " "; }
void solve() {
  double ra = calcr(double(A));
  double rb = calcr(double(B));
  Circle a(Point(ra, ra), ra);
  double dx = (UW - rb) - ra, dy = (UH - rb) - ra;
  double lb = 0.0, ub = 1.0;
  for (int rep = (0); rep < (50); ++rep) {
    double med = (lb + ub) / 2.;
    Circle c(Point(ra + dx * med, ra + dy * med), rb);
    double IS = inter(a, c);
    if (IS < double(AB))
      ub = med;
    else
      lb = med;
  }
  double xa = ra, ya = ra;
  double xb = ra + dx * lb, yb = ra + dy * lb;
  if (fabs(inter(a, Circle(Point(xb, yb), rb)) - AB) > EPS ||
      double(UW) - (xa + ra) < 0 || double(UW) - (xb + rb) < 0 ||
      double(UH) - (ya + ra) < 0 || double(UH) - (yb + rb) < 0) {
    cout << "impossible" << endl;
  } else {
    putd(xa);
    puts();
    putd(ya);
    puts();
    putd(ra);
    puts();
    putd(xb);
    puts();
    putd(yb);
    puts();
    putd(rb);
    cout << endl;
  }
}
int main() {
  while (cin >> UW >> UH >> A >> B >> AB, UW) {
    solve();
  }
}
