#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
int W, H;
inline double area(double r, double R, double d) {
  if (r + R < d) return 0;
  if (R - r > d) return pi * r * r;
  if (r - R > d) return pi * R * R;
  double q1 = acos((r * r + d * d - R * R) / (2 * r * d));
  double q2 = acos((R * R + d * d - r * r) / (2 * R * d));
  return (r * r * q1 + R * R * q2 - r * d * sin(q1));
}
inline bool in(double x, double y, double r) {
  double s = 1e-6;
  return x - r >= -s && x + r <= W + s && y - r >= -s && y + r <= H + s;
}
inline double sqr(double x) { return x * x; }
int main() {
  int A, B, Mix;
  while (scanf("%d%d%d%d%d", &W, &H, &A, &B, &Mix) && W) {
    int fg = 0;
    if (A > B) swap(A, B), fg = 1;
    double r1 = sqrt(A / pi);
    double r2 = sqrt(B / pi);
    double x1 = r1, y1 = r1;
    double x2 = W - r2, y2 = H - r2;
    if (!in(x2, y2, r2)) {
      puts("impossible");
      continue;
    }
    double l = r2 - r1, r = r1 + r2, mid;
    while (l + 1e-8 <= r) {
      mid = (l + r) / 2;
      if (area(r1, r2, mid) < Mix)
        r = mid;
      else
        l = mid;
    }
    if (!Mix) l = r1 + r2;
    if (Mix == A) l = 0;
    double dis = sqrt(sqr(x1 - x2) + sqr(y1 - y2));
    x1 += (x2 - x1) * l / dis;
    y1 += (y2 - y1) * l / dis;
    if (in(x1, y1, r1)) {
      if (fg) swap(x1, y1), swap(x2, y2), swap(r1, r2);
      printf("%.10f %.10f %.10f %.10f %.10f %.10f\n", x1, y1, r1, x2, y2, r2);
    } else
      puts("impossible");
  }
  return 0;
}
