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

#define LEN 128
#define MAX 128
#define MAXLETTER 6

int main(void) {
	struct {
		int upcount;
		int downcount;
		int up[100];
		int down[100];
	} alphabet[MAXLETTER];
	for(int i=0;i<MAXLETTER;i++)
		alphabet[i].upcount=alphabet[i].downcount=0;
	char line[LEN];
	while(fgets(line,LEN,stdin)!=NULL)
	{
		int len=strlen(line);
		if(line[len-1]=='\n')
			line[--len]=0;
		char aa, bb;
		sscanf(line, "Step %c must be finished before step %c can begin.", &aa, &bb);
		int a=aa-'A';
		int b=bb-'A';
	
		alphabet[a].down[alphabet[a].downcount++] = b;
		alphabet[b].up[alphabet[b].upcount++] = a;
	}
	
	int top;
	for(int i=0;i<MAXLETTER;i++)
		if(alphabet[i].upcount==0)
			top=i;
	printf("%d\n",top);
	int bottom;
	for(int i=0;i<MAXLETTER;i++)
		if(alphabet[i].downcount==0)
			bottom=i;	
	int available[MAXLETTER];
	for(int i=0;i<MAXLETTER;i++)
		available[i]=0;

exit(0);

	int solution[100];
	int k=0;
	int current=top;

	int flag=0;
	while(1)
	{
		for(int i=0;i<alphabet[current].downcount;i++)
			available[alphabet[current].down[i]]=1;

		for(int i=0;i<MAXLETTER;i++)
		{
			if(available[i])
			{
				solution[k++]=i;
				current=i;
				available[i]=0;
				break;
			}
		}
		

	}
	
	solution[k]=0;
	for(int i=0;i<k;i++)
		printf("%c",solution[i]+'A');
	return 0;
}
