#include<bits/stdc++.h>
using namespace std;
#define r(i,n) for(int i=0;i<n;i++)
typedef double D;
typedef complex<D> P;
const D EPS = 1e-9; 
#define X real()
#define Y imag()
D dot(P a, P b) {return (conj(a)*b).X; }
D cross(P a, P b) {  return (conj(a)*b).Y;}
int ccw(P a, P b, P c) {
  b -= a;  c -= a;
  if (cross(b,c) >  EPS) return +1;
  if (cross(b,c) < -EPS) return -1;
  if (dot(b,c)   < -EPS) return +2;
  if (norm(b) < norm(c)) return -2;
  return 0;
}
double x[3],y[3],xr,yr,r;
bool dis(int p){
  return sqrt(abs(x[p]-xr)*abs(x[p]-xr)+abs(y[p]-yr)*abs(y[p]-yr))<=r+0.01;
}
main(){
  while(cin>>x[0]>>y[0],x[0]+y[0]){
    int sum=0;
    r(i,2)cin>>x[i+1]>>y[i+1];
    cin>>xr>>yr>>r;
    r(i,3)if(dis(i))sum++;
    if(sum==0){
      int pp=0;
      r(i,3){
        pp+=ccw(P(x[i],y[i]),P(x[(i+1)%3],y[(i+1)%3]),P(xr,yr));
        if(ccw(P(x[i],y[i]),P(x[(i+1)%3],y[(i+1)%3]),P(xr,yr))==2)exit(1);
      }
      if(abs(pp)==3)cout<<'a'<<endl;
      else cout<<'d'<<endl;
    }
    else if(sum==3)cout<<'b'<<endl;
    else cout<<'c'<<endl;
  }
}