#include <iostream>
#include <vector>
#include <cmath>
#include <utility>
using namespace std;

#define x first
#define y second

typedef pair<double,double> pdd;
static const double EPS = 1e-9;

template<class T>
T sqr(T obj0) {
	return obj0 * obj0;
}

bool is_cross(pdd l0, pdd l1, pdd p, double r) {
	pdd a,b,c;

	a.x = l0.x - p.x; a.y = l0.y - p.y;
	b.x = l1.x - p.x; b.y = l1.y - p.y;
	c.x = a.x - b.x; c.y = a.y - b.y;

	double d0, d1, d2, dist;
	double h;

	h = abs(a.x * b.y - a.y * b.x) / abs(sqrt(c.x * c.x + c.y * c.y));

	d0 = sqrt(sqr(c.x) + sqr(c.y));
	d1 = sqrt(sqr(a.x) + sqr(a.y) - sqr(h));
	d2 = sqrt(sqr(b.x) + sqr(b.y) - sqr(h));

	if(fabs(d0 - (d1 + d2)) < EPS)
		dist = h;
	else
		dist = min(sqrt(sqr(a.x) + sqr(a.y)), sqrt(sqr(b.x) + sqr(b.y)));

	if(dist <= r && r <= max(sqrt(sqr(a.x) + sqr(a.y)), sqrt(sqr(b.x) + sqr(b.y))))
		return true;
	return false;
}

bool in_triangle(vector<pdd> tri, pdd p) {
	double s, t;
	pdd a, b, c;

	a.x = tri[1].x - tri[0].x; a.y = tri[1].y - tri[0].y;
	b.x = tri[2].x - tri[0].x; b.y = tri[2].y - tri[0].y;
	c.x = p.x - tri[0].x; c.y = p.y - tri[0].y;

	s = (c.x * b.y - c.y * b.x) / (a.x * b.y - a.y * b.x);
	t = (c.y * a.x - c.x * a.y) / (a.x * b.y - a.y * b.x);

	if(0 <= s + t && s + t <= 1 && 0 <= s && 0 <= t)
		return true;
	return false;
}

/*
bool in_circle(vector<pdd> t, pdd p, double r) {
	bool flg = true;
	for(int i = 0; i < 3; i++) {
		double tmp;
		tmp = sqr(t[i].x - p.x) + sqr(t[i].y - p.y);
		flg &= tmp <= r;
	}

	return flg;
}
*/

int main() {
	while(true) {
		vector<pdd> tri;
		pdd c;
		double r;

		for(int i = 0; i < 3; i++) {
			double tmpx, tmpy;
			cin >> tmpx >> tmpy;
			tri.push_back(pdd(tmpx, tmpy));
			if(i == 0 && tri[0].x == 0 && tri[0].y == 0)
				goto label;
		}
		cin >> c.x >> c.y >> r;

		bool flg0, flg1, flg2;
		flg0 = true;
		flg1 = false;
		for(int i = 0; i < 3; i++) {
			flg0 &= ((sqr(c.x - tri[i].x) + sqr(c.y - tri[i].y)) <= r * r);
		}
		for(int i = 0; i < 3; i++) {
			flg1 |= is_cross(tri[i % 3], tri[(i + 1) % 3], c, r);
		}

//		cout << boolalpha << flg0 << " " << flg1 << endl;

		if(flg0)
			cout << "b" << endl;
		else if(!flg1 && in_triangle(tri, c))
			cout << "a" << endl;
		else if(flg1)
			cout << "c" << endl;
		else
			cout << "d" << endl;
	}
label:;
}