#include<iostream>
#include<cmath>

using namespace std;

double bx,by;
double ra,rb;

double integ(double r,double a){
  return r*r*(acos(0)-asin(a/r)-.5*sin(2*asin(a/r)));
}

double f(double y,double x){
  double X=hypot(y-by,x-bx);
  if(X>ra+rb)return 0;
  if(X+ra<=rb)return ra*ra*acos(0)*2;
  return integ(ra,(X*X+ra*ra-rb*rb)/2/X)+integ(rb,(X*X+rb*rb-ra*ra)/2/X);
}

int main(){
  for(int UW,UH,A,B,ACAPB;cin>>UW>>UH>>A>>B>>ACAPB,UW|UH|A|B|ACAPB;){
    bool rev=false;
    if(A>B){
      rev=true;
      swap(A,B);
    }
    ra=sqrt(A/acos(0)/2),rb=sqrt(B/acos(0)/2);
    if(2*rb>min(UW,UH))goto fail;
    cout.precision(9);
    if(A==ACAPB){
      cout<<fixed<<rb<<' '<<rb<<' '<<(rev?rb:ra)<<' '<<rb<<' '<<rb<<' '<<(rev?ra:rb)<<endl;
    }else{
      bx=UW-rb,by=UH-rb;
      double lax=ra,lay=ra;
      if(f(lay,lax)>ACAPB)goto fail;
      {
	double hax=bx,hay=by;
	for(int i=0;i<10000;i++){
	  double mdax=(lax+hax)/2,mday=(lay+hay)/2;
	  if(f(mday,mdax)>ACAPB){
	    hax=mdax;
	    hay=mday;
	  }else{
	    lax=mdax;
	    lay=mday;
	  }
	}
	if(!rev){
	  cout<<fixed<<lax<<' '<<lay<<' '<<ra<<' '<<bx<<' '<<by<<' '<<rb<<endl;
	}else{
	  cout<<fixed<<bx<<' '<<by<<' '<<rb<<' '<<lax<<' '<<lay<<' '<<ra<<endl;
	}
      }
    }
    continue;
  fail:
    cout<<"impossible"<<endl;
  }
}

	
  