// Aizu Vol-0 0036: A Figure on Surface
// 2017.8.4

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

char *gets(char *);
char buf[100], *p;

char tbl[256][2] = {
{ 0,0 },{ 1,0 },{ 1,1 },{ 2,0 },{ 1,2 },{ 0,0 },{ 2,1 },{ 3,0 },{ 1,3 },{ 0,0 },{ 0,0 },{ 0,0 },{ 2,2 },{ 0,0 },{ 3,1 },{ 4,0 },
{ 1,4 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 2,3 },{ 0,0 },{ 0,0 },{ 0,0 },{ 3,2 },{ 0,0 },{ 4,1 },{ 5,0 },
{ 1,5 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 2,4 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 3,3 },{ 0,0 },{ 0,0 },{ 0,0 },{ 4,2 },{ 0,0 },{ 5,1 },{ 6,0 },
{ 1,6 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 2,5 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 3,4 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 4,3 },{ 0,0 },{ 0,0 },{ 0,0 },{ 5,2 },{ 0,0 },{ 6,1 },{ 7,0 },
{ 1,7 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 2,6 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 3,5 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },
{ 4,4 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 0,0 },{ 5,3 },{ 0,0 },{ 0,0 },{ 0,0 },{ 6,2 },{ 0,0 },{ 7,1 },{ 8,0 },
};

int a[20];

int main()
{
	int i, j, k, f = 1;

#if 0
	printf("char tbl[256][2] = {\n");
	for (i = 0; i < 256; i++) {
		int k = -1, n = 0, b, cnt = 0, max = 0;
		for (j = 0, b = i; j < 8; j++, b >>= 1) {
			if (b & 1) {
				n++;
				if (k < 0) k = j;
				cnt++;
				if (max < cnt) max = cnt;
			}
			else cnt = 0;
		}
		if (max >= 1 && max == n) printf("{%d,%d},", n, k);
		else printf("{0,0},");
	}
	puts("\n};\n");
#endif
	while (1) {
		if (f) f = 0;
		else if (gets(buf) == NULL) break;
		for (i = 0; i < 8; i++) {
			gets(p = buf);
			for (j = 0, k = 0; j < 8; j++) {
//				while (isspace(*p)) p++;
				k <<= 1;
				if (*p++ == '1') k |= 1;
			}
			a[i] = k;
		}
		for (i = 0; i < 8; i++) {
			k = tbl[a[i]][0], j = tbl[a[i]][1];
			if (k == 4) { putchar('C'); goto DONE; }
			if (k == 2) {
				int p = tbl[a[i + 1]][1];
				if (p == j) { putchar('A'); goto DONE; }
				if (p == j - 1) { putchar('E'); goto DONE; }
				if (p == j + 1) { putchar('G'); goto DONE; }
			}
			if (k == 1) {
				int p = tbl[a[i + 1]][1], k2 = tbl[a[i + 1]][0];
				if (p == j && k2 == 1) { putchar('B'); goto DONE; }
				if (p == j && k2 == 2) { putchar('D'); goto DONE; }
				if (p == j - 1 && k2 == 2) { putchar('F'); goto DONE; }
			}
		}
	DONE:; putchar('\n');
	}
	return 0;
}

Measured memory_bytes: 524