import java.util.Scanner;

class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String A=sc.next();
		String B=sc.next();
		String C=sc.next();
		int[] stats=new int[3];
		char next='a';
		int[] max=new int[3];
		max[0]=A.length();
		max[1]=B.length();
		max[2]=C.length();
		for(int i=0; i<3; i++) {
			stats[i]=0;
		}
		next=A.charAt(0);
		stats[0]++;
		while(true) {
			char old=next;
			if(next=='a') {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			}
			else if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			}
		}
	}
} import java.util.Scanner; Scanner java.util class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String A=sc.next();
		String B=sc.next();
		String C=sc.next();
		int[] stats=new int[3];
		char next='a';
		int[] max=new int[3];
		max[0]=A.length();
		max[1]=B.length();
		max[2]=C.length();
		for(int i=0; i<3; i++) {
			stats[i]=0;
		}
		next=A.charAt(0);
		stats[0]++;
		while(true) {
			char old=next;
			if(next=='a') {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			}
			else if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			}
		}
	}
} Main public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String A=sc.next();
		String B=sc.next();
		String C=sc.next();
		int[] stats=new int[3];
		char next='a';
		int[] max=new int[3];
		max[0]=A.length();
		max[1]=B.length();
		max[2]=C.length();
		for(int i=0; i<3; i++) {
			stats[i]=0;
		}
		next=A.charAt(0);
		stats[0]++;
		while(true) {
			char old=next;
			if(next=='a') {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			}
			else if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			}
		}
	} main {
		Scanner sc=new Scanner(System.in);
		String A=sc.next();
		String B=sc.next();
		String C=sc.next();
		int[] stats=new int[3];
		char next='a';
		int[] max=new int[3];
		max[0]=A.length();
		max[1]=B.length();
		max[2]=C.length();
		for(int i=0; i<3; i++) {
			stats[i]=0;
		}
		next=A.charAt(0);
		stats[0]++;
		while(true) {
			char old=next;
			if(next=='a') {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			}
			else if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			}
		}
	} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) String A=sc.next(); A sc.next() sc.next sc String B=sc.next(); B sc.next() sc.next sc String C=sc.next(); C sc.next() sc.next sc int[] stats=new int[3]; stats new int[3] 3 char next='a'; next 'a' int[] max=new int[3]; max new int[3] 3 max[0]=A.length() max[0] max 0 A.length() A.length A max[1]=B.length() max[1] max 1 B.length() B.length B max[2]=C.length() max[2] max 2 C.length() C.length C for(int i=0; i<3; i++) {
			stats[i]=0;
		} int i=0; int i=0; i 0 i<3 i 3 i++ i++ i {
			stats[i]=0;
		} {
			stats[i]=0;
		} stats[i]=0 stats[i] stats i 0 next=A.charAt(0) next A.charAt(0) A.charAt A 0 stats[0]++ stats[0] stats 0 while(true) {
			char old=next;
			if(next=='a') {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			}
			else if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			}
		} true {
			char old=next;
			if(next=='a') {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			}
			else if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			}
		} char old=next; old next if(next=='a') {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			}
			else if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			} next=='a' next 'a' {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			} if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				} stats[0]<max[0] stats[0] stats 0 max[0] max 0 {
					next=A.charAt(stats[0]);
					stats[0]++;
				} next=A.charAt(stats[0]) next A.charAt(stats[0]) A.charAt A stats[0] stats 0 stats[0]++ stats[0] stats 0 {
					System.out.println("A");
					System.exit(0);
				} System.out.println("A") System.out.println System.out System System.out "A" System.exit(0) System.exit System 0 if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			} next=='b' next 'b' {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			} if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				} stats[1]<max[1] stats[1] stats 1 max[1] max 1 {
					next=B.charAt(stats[1]);
					stats[1]++;
				} next=B.charAt(stats[1]) next B.charAt(stats[1]) B.charAt B stats[1] stats 1 stats[1]++ stats[1] stats 1 {
					System.out.println("B");
					System.exit(0);
				} System.out.println("B") System.out.println System.out System System.out "B" System.exit(0) System.exit System 0 if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			} next=='c' next 'c' {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			} if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				} stats[2]<max[2] stats[2] stats 2 max[2] max 2 {
					next=C.charAt(stats[2]);
					stats[2]++;
				} next=C.charAt(stats[2]) next C.charAt(stats[2]) C.charAt C stats[2] stats 2 stats[2]++ stats[2] stats 2 {
					System.out.println("C");
					System.exit(0);
				} System.out.println("C") System.out.println System.out System System.out "C" System.exit(0) System.exit System 0 String[] args args
import java.util.Scanner;

class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String A=sc.next();
		String B=sc.next();
		String C=sc.next();
		int[] stats=new int[3];
		char next='a';
		int[] max=new int[3];
		max[0]=A.length();
		max[1]=B.length();
		max[2]=C.length();
		for(int i=0; i<3; i++) {
			stats[i]=0;
		}
		next=A.charAt(0);
		stats[0]++;
		while(true) {
			char old=next;
			if(next=='a') {
				if(stats[0]<max[0]) {
					next=A.charAt(stats[0]);
					stats[0]++;
				}
				else {
					System.out.println("A");
					System.exit(0);
				}
			}
			else if(next=='b') {
				if(stats[1]<max[1]) {
					next=B.charAt(stats[1]);
					stats[1]++;
				}
				else {
					System.out.println("B");
					System.exit(0);
				}
			}
			else if(next=='c') {
				if(stats[2]<max[2]) {
					next=C.charAt(stats[2]);
					stats[2]++;
				}
				else {
					System.out.println("C");
					System.exit(0);
				}
			}
		}
	}
}