#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
typedef long double ld;
const ld pi=3.1415926535897932384626, eps=1e-9;
int main(){
	cout << setprecision(9);
	while(true){
		ld w,h,a,b,ab,a_c,b_c;
		cin >> w >> h >> a >> b >> ab;
		if(w<eps) break;
		a_c=a;b_c=b;
		if(a>b) swap(a,b);
		ld ra=sqrt(a/pi);
		ld rb=sqrt(b/pi);
		ld ub=pi,lb=0;
		int cnt=0;
		ld mid,phi;
		while(cnt<80){
			cnt++;
			mid=(ub+lb)/2;
			phi=asin( ra*sin(mid)/rb );
			if(ra*ra*mid-ra*ra*cos(mid)*sin(mid)+rb*rb*phi-rb*rb*cos(phi)*sin(phi)>ab) ub=mid;
			else lb=mid;
		}
		ld dis=ra*cos(mid)+rb*cos(phi);
//		cout << "    " << mid << "    " << dis << endl;
		if(2*rb>h || 2*rb>w){		//そもそもでかい円が入らない
			cout << "impossible" << endl;
			continue;
		}
		if(h-ra-rb>=dis){		//上にかなり広い
			if(a_c<b_c) cout << rb << " " << rb+dis << " " << ra << " " << rb << " " << rb << " " << rb << endl;
			else 		cout << rb << " " << rb << " " << rb << " " << rb << " " << rb+dis << " " << ra << endl;
			continue;
		}
		ld theta=asin( (h-ra-rb)/dis );			//(0<=()<=1   0<=theta<=pi/2)
		if(ra+rb+dis*cos(theta)>w){
			cout << "impossible" << endl;
			continue;
		}
		if(a_c<b_c) cout << rb+dis*cos(theta) << " " << h-ra << " " << ra << " " << rb << " " << rb << " " << rb << endl;
		else 		cout << rb << " " << rb << " " << rb << " " << rb+dis*cos(theta) << " " << h-ra << " " << ra << endl;
	}
	return 0;
}}