import java.util.Scanner;

public class Main{
	public static void main(String[] args)
	{
		Scanner sc =new Scanner(System.in);
		String S_a=sc.next();	//aのカード
		String S_b=sc.next();	//bのカード
		String S_c=sc.next();	//cのカード

		char winner='A';	//勝者(初期設定をAとする)

		int card_a=S_a.length();	//aのカード枚数
		int card_b=S_b.length();	//bのカード枚数
		int card_c=S_c.length();	//cのカード枚数

		int i_a=0,i_b=0,i_c=0;	//ターン
		int next=0;

		if(S_a.charAt(i_a)=='a'){
			card_a--; next=1; i_a++;
		}else if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		}

		while(true){
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		}

		if(card_b==-1) winner='B';
		else if(card_c==-1) winner='C'; 

		//結果を出力
		System.out.println(winner);
	}

	public static int check(char check_letter){
		int next=0;
		if(check_letter=='a') next=1;
		else if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3;
		return next;
	}
}  import java.util.Scanner; Scanner java.util public class Main{
	public static void main(String[] args)
	{
		Scanner sc =new Scanner(System.in);
		String S_a=sc.next();	//aのカード
		String S_b=sc.next();	//bのカード
		String S_c=sc.next();	//cのカード

		char winner='A';	//勝者(初期設定をAとする)

		int card_a=S_a.length();	//aのカード枚数
		int card_b=S_b.length();	//bのカード枚数
		int card_c=S_c.length();	//cのカード枚数

		int i_a=0,i_b=0,i_c=0;	//ターン
		int next=0;

		if(S_a.charAt(i_a)=='a'){
			card_a--; next=1; i_a++;
		}else if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		}

		while(true){
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		}

		if(card_b==-1) winner='B';
		else if(card_c==-1) winner='C'; 

		//結果を出力
		System.out.println(winner);
	}

	public static int check(char check_letter){
		int next=0;
		if(check_letter=='a') next=1;
		else if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3;
		return next;
	}
} Main public static void main(String[] args)
	{
		Scanner sc =new Scanner(System.in);
		String S_a=sc.next();	//aのカード
		String S_b=sc.next();	//bのカード
		String S_c=sc.next();	//cのカード

		char winner='A';	//勝者(初期設定をAとする)

		int card_a=S_a.length();	//aのカード枚数
		int card_b=S_b.length();	//bのカード枚数
		int card_c=S_c.length();	//cのカード枚数

		int i_a=0,i_b=0,i_c=0;	//ターン
		int next=0;

		if(S_a.charAt(i_a)=='a'){
			card_a--; next=1; i_a++;
		}else if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		}

		while(true){
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		}

		if(card_b==-1) winner='B';
		else if(card_c==-1) winner='C'; 

		//結果を出力
		System.out.println(winner);
	} main {
		Scanner sc =new Scanner(System.in);
		String S_a=sc.next();	//aのカード
		String S_b=sc.next();	//bのカード
		String S_c=sc.next();	//cのカード

		char winner='A';	//勝者(初期設定をAとする)

		int card_a=S_a.length();	//aのカード枚数
		int card_b=S_b.length();	//bのカード枚数
		int card_c=S_c.length();	//cのカード枚数

		int i_a=0,i_b=0,i_c=0;	//ターン
		int next=0;

		if(S_a.charAt(i_a)=='a'){
			card_a--; next=1; i_a++;
		}else if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		}

		while(true){
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		}

		if(card_b==-1) winner='B';
		else if(card_c==-1) winner='C'; 

		//結果を出力
		System.out.println(winner);
	} Scanner sc =new Scanner(System.in); sc new Scanner(System.in) String S_a=sc.next(); S_a sc.next() sc.next sc String S_b=sc.next(); S_b sc.next() sc.next sc String S_c=sc.next(); S_c sc.next() sc.next sc char winner='A'; winner 'A' int card_a=S_a.length(); card_a S_a.length() S_a.length S_a int card_b=S_b.length(); card_b S_b.length() S_b.length S_b int card_c=S_c.length(); card_c S_c.length() S_c.length S_c int i_a=0 i_a 0 i_b=0 i_b 0 i_c=0; i_c 0 int next=0; next 0 if(S_a.charAt(i_a)=='a'){
			card_a--; next=1; i_a++;
		}else if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		} S_a.charAt(i_a)=='a' S_a.charAt(i_a) S_a.charAt S_a i_a 'a' {
			card_a--; next=1; i_a++;
		} card_a-- card_a next=1 next 1 i_a++ i_a if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		} S_a.charAt(i_a)=='b' S_a.charAt(i_a) S_a.charAt S_a i_a 'b' {
			card_b--; next=2; i_b++;
		} card_b-- card_b next=2 next 2 i_b++ i_b if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		} S_a.charAt(i_a)=='c' S_a.charAt(i_a) S_a.charAt S_a i_a 'c' {
			card_c--; next=3; i_c++;
		} card_c-- card_c next=3 next 3 i_c++ i_c while(true){
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		} true {
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		} if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			} next==1 next 1 {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			} card_a-- card_a if(card_a==-1) break; card_a==-1 card_a -1 1 break; next=check(S_a.charAt(i_a)) next check(S_a.charAt(i_a)) check S_a.charAt(i_a) S_a.charAt S_a i_a i_a++ i_a if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			} next==2 next 2 {
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			} card_b-- card_b if(card_b==-1) break; card_b==-1 card_b -1 1 break; next=check(S_b.charAt(i_b)) next check(S_b.charAt(i_b)) check S_b.charAt(i_b) S_b.charAt S_b i_b i_b++ i_b if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			} next==3 next 3 {
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			} card_c-- card_c if(card_c==-1) break; card_c==-1 card_c -1 1 break; next=check(S_c.charAt(i_c)) next check(S_c.charAt(i_c)) check S_c.charAt(i_c) S_c.charAt S_c i_c i_c++ i_c if(card_b==-1) winner='B';
		else if(card_c==-1) winner='C'; card_b==-1 card_b -1 1 winner='B' winner 'B' if(card_c==-1) winner='C'; card_c==-1 card_c -1 1 winner='C' winner 'C' System.out.println(winner) System.out.println System.out System System.out winner String[] args args public static int check(char check_letter){
		int next=0;
		if(check_letter=='a') next=1;
		else if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3;
		return next;
	} check {
		int next=0;
		if(check_letter=='a') next=1;
		else if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3;
		return next;
	} int next=0; next 0 if(check_letter=='a') next=1;
		else if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3; check_letter=='a' check_letter 'a' next=1 next 1 if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3; check_letter=='b' check_letter 'b' next=2 next 2 if(check_letter=='c') next=3; check_letter=='c' check_letter 'c' next=3 next 3 return next; next char check_letter check_letter public class Main{
	public static void main(String[] args)
	{
		Scanner sc =new Scanner(System.in);
		String S_a=sc.next();	//aのカード
		String S_b=sc.next();	//bのカード
		String S_c=sc.next();	//cのカード

		char winner='A';	//勝者(初期設定をAとする)

		int card_a=S_a.length();	//aのカード枚数
		int card_b=S_b.length();	//bのカード枚数
		int card_c=S_c.length();	//cのカード枚数

		int i_a=0,i_b=0,i_c=0;	//ターン
		int next=0;

		if(S_a.charAt(i_a)=='a'){
			card_a--; next=1; i_a++;
		}else if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		}

		while(true){
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		}

		if(card_b==-1) winner='B';
		else if(card_c==-1) winner='C'; 

		//結果を出力
		System.out.println(winner);
	}

	public static int check(char check_letter){
		int next=0;
		if(check_letter=='a') next=1;
		else if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3;
		return next;
	}
} public class Main{
	public static void main(String[] args)
	{
		Scanner sc =new Scanner(System.in);
		String S_a=sc.next();	//aのカード
		String S_b=sc.next();	//bのカード
		String S_c=sc.next();	//cのカード

		char winner='A';	//勝者(初期設定をAとする)

		int card_a=S_a.length();	//aのカード枚数
		int card_b=S_b.length();	//bのカード枚数
		int card_c=S_c.length();	//cのカード枚数

		int i_a=0,i_b=0,i_c=0;	//ターン
		int next=0;

		if(S_a.charAt(i_a)=='a'){
			card_a--; next=1; i_a++;
		}else if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		}

		while(true){
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		}

		if(card_b==-1) winner='B';
		else if(card_c==-1) winner='C'; 

		//結果を出力
		System.out.println(winner);
	}

	public static int check(char check_letter){
		int next=0;
		if(check_letter=='a') next=1;
		else if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3;
		return next;
	}
} Main
import java.util.Scanner;

public class Main{
	public static void main(String[] args)
	{
		Scanner sc =new Scanner(System.in);
		String S_a=sc.next();	//aのカード
		String S_b=sc.next();	//bのカード
		String S_c=sc.next();	//cのカード

		char winner='A';	//勝者(初期設定をAとする)

		int card_a=S_a.length();	//aのカード枚数
		int card_b=S_b.length();	//bのカード枚数
		int card_c=S_c.length();	//cのカード枚数

		int i_a=0,i_b=0,i_c=0;	//ターン
		int next=0;

		if(S_a.charAt(i_a)=='a'){
			card_a--; next=1; i_a++;
		}else if(S_a.charAt(i_a)=='b'){
			card_b--; next=2; i_b++;
		} else if(S_a.charAt(i_a)=='c'){
			card_c--; next=3; i_c++;
		}

		while(true){
			//各文字列のi番目の文字に対応する人のカードの数を減らす
			if(next==1) {
				card_a--;
				if(card_a==-1) break;
				next=check(S_a.charAt(i_a));
				i_a++;
			}else if(next==2){
				card_b--;
				if(card_b==-1) break;
				next=check(S_b.charAt(i_b));
				i_b++;
			}else if(next==3){
				card_c--;
				if(card_c==-1) break;
				next=check(S_c.charAt(i_c));
				i_c++;
			}
		}

		if(card_b==-1) winner='B';
		else if(card_c==-1) winner='C'; 

		//結果を出力
		System.out.println(winner);
	}

	public static int check(char check_letter){
		int next=0;
		if(check_letter=='a') next=1;
		else if(check_letter=='b') next=2;
		else if(check_letter=='c') next=3;
		return next;
	}
} 