//12
#include<iostream>
#include<complex>
#include<cmath>
#include<algorithm>

using namespace std;

typedef complex<double> P;

int cr(P a,P b){
  return a.real()*b.imag()-a.imag()*b.real();
}

int dt(P a,P b){
  return a.real()*b.real()+a.imag()*b.imag();
}

int main(){
  for(;;){
    int x,y;
    P t[3],c;
    int r;
    for(int i=0;i<3;i++){
      cin>>x>>y;
      if((i|x|y)==0)return 0;
      t[i]=P(x,y);
    }
    cin>>x>>y;
    c=P(x,y);
    cin>>r;
    if(abs(t[0]-c)<=r&&abs(t[1]-c)<=r&&abs(t[2]-c)<=r){
      cout<<'b'<<endl;
    }else{
      double d[3];
      bool f[2]={};
      for(int i=0;i<3;i++){
	P l=t[(i+1)%3]-t[i];
	if(dt(l,c-t[i])>0&&dt(-l,c-t[(i+1)%3])>0){
	  d[i]=fabs(cr(l,c-t[i])/abs(l));
	}else{
	  d[i]=min(abs(c-t[i]),abs(c-t[(i+1)%3]));
	}
	f[cr(l,c-t[i])<0]=true;
      }
      if(f[0]^f[1]&&d[0]>=r&&d[1]>=r&&d[2]>=r){
	cout<<'a'<<endl;
      }else if(d[0]<=r||d[1]<=r||d[2]<=r){
	cout<<'c'<<endl;
      }else{
	cout<<'d'<<endl;
      }
    }
  }
  return 0;
}