Go: package main

import "fmt"

func max(a, b int) int {
	if a < b {
		return b
	}
	return a
}

func max3(a, b, c int) int {
	return max(max(a, b), c)
}

func main() {
	var (
		a, b, c int
		ch      byte
	)
	fmt.Scanln(&a, &b, &c)
	m := max3(a, b, c)
	switch m {
	case a:
		ch = 'A'
	case b:
		ch = 'B'
	case c:
		ch = 'C'
	}
	fmt.Printf("%c\n", ch)
}

Python: #!usr/bin/env python3
from collections import defaultdict
from heapq import heappush, heappop
import sys
import math
import bisect
import random
def LI(): return list(map(int, sys.stdin.readline().split()))
def I(): return int(sys.stdin.readline())
def LS():return list(map(list, sys.stdin.readline().split()))
def S(): return list(sys.stdin.readline())[:-1]
def IR(n):
    l = [None for i in range(n)]
    for i in range(n):l[i] = I()
    return l
def LIR(n):
    l = [None for i in range(n)]
    for i in range(n):l[i] = LI()
    return l
def SR(n):
    l = [None for i in range(n)]
    for i in range(n):l[i] = S()
    return l
def LSR(n):
    l = [None for i in range(n)]
    for i in range(n):l[i] = SR()
    return l
mod = 1000000007

#A
a = LI()
s = "ABC"
print(s[a.index(max(a))])
#B

#C

#D

#E

#F

#G

#H

#I

#J

#K

#L

#M

#N

#O

#P

#Q

#R

#S

#T

Python: a,b,c = [ int(s) for s in input().split() ]
  
if a > b and a > c:
    print('A')
elif b > a and b > c:
    print('B')
elif c > a and c > b:
    print('C')

Python: a,b,c = map(int, input().split())
if a==max(a,b,c):
    print('A')
elif b==max(a,b,c):
    print('B')
else:
    print('C')

Python: A=list(map(int, input().split()))
print('ABC'[A.index(max(A))])

Python: menber = ["A","B","C"]
menu = [int(x) for x in input().split() ]

print(menber[menu.index(max(menu))])

Python: a,b,c=map(int,input().split())
if a>b and a>c:
    print("A")
elif b>c:
    print("B")
else:
    print("C")

Python: a,b,c = map(int, input().split())
s = "A"
s = "B" if a < b and c < b else s
s = "C" if a < c and b < c else s
print(s)

Python: a, b, c = map(int, input().split())

if a > b and a > c:
    print ('A')
elif b > a and b > c:
    print ('B')
else:
    print('C')

Python: lst=list(map(int,input().split()))
lst2=['A','B','C']
for i,j in enumerate(lst):
    if j==max(lst):
        print(lst2[i])

Python: a,b,c=map(int,input().split())
l={'a':a,'b':b,'c':c}
keys=[k for k,v in l.items() if v==max(l.values())]
print(keys[0].upper())

Python: a=list(map(int, input().split()))
x=["A","B","C"]
print(x[a.index(max(a))])

Python: a,b,c = map(int,input().split())
print(max([(a,'A'),(b,'B'),(c,'C')])[1])

Python: S = list(map(int,input().split()))
if S.index(max(S)) == 0:
    print("A")
elif S.index(max(S)) == 1:
    print("B")
elif S.index(max(S)) == 2:
    print("C")

Python: A, B, C = map(int, input().split())
if max(A, B, C) == A :
    print("A")
elif max(A, B, C) == B :
    print("B")
else :
    print("C")

Python: a,b,c=map(int,input().split())
if a>b and a>c:
	print("A")
elif b>c:
	print("B")
else:
	print("C")

Python: # -*- coding: utf-8 -*-
a,b,c = map(int,input().split())

if a > b and a > c:
    print("A")
elif b > a and b > c:
    print("B")
else:
    print("C")

Python: 
a,b,c = [int(i) for i in input().split()]

if a > b and a > c:
    print("A")
elif b > a and b > c:
    print("B")
else:
    print("C")

Python: X = list(map(int, input().split()))
x = max(X)
Y = ["A", "B", "C"]
print(Y[X.index(x)])

Python: a,b,c = input().split(" ")
if int(a) > int(b):
    if int(a) > int(c):
        print("A")
    else:
        if int(b) > int(c):
            print("B")
        else:
            print("C")
else:
    if int(b) > int(c):
        print("B")
    else:
        print("C")

C++: //実装が重そうな問題はある程度考えてから書く
//初期化を忘れずに（特に二分探索とか）
//コーナーケースを考えて（特に場合分けとか）
//不可解すぎるバグは配列外参照（配列の長さ）を検討
#include "bits/stdc++.h"
#define YES "YES"
#define NO "NO"
#define YESNO OUT(three(solve(),YES,NO))
#define ECHO OUT(solve())
#define three(A,B,C) ((A)?(B):(C))
#define FOR(i,a,b)  for(LL i=(a);i< (LL)(b);i++)
#define EFOR(i,a,b) for(LL i=(a);i<=(LL)(b);i++)
#define RFOR(i,a,b) for(LL i=(a);i>=(LL)(b);i--)
#define REP(i,b) FOR(i,zero,b)
#define EREP(i,b) EFOR(i,zero,b)
#define RREP(i,b) RFOR(i,b-1,zero)
#define ALL(c) c.begin(),c.end()
#define UNIQUE(c) sort(ALL(c));c.erase(unique(ALL(c)),c.end())
#define MAX(c) (*max_element(ALL(c)))
#define MIN(c) (*min_element(ALL(c)))
#define MP make_pair
#define FI first
#define SE second
#define SI(x) (LL(x.size()))
#define PB emplace_back
#define DEBUG(a) OUT(a)
#define DEBUG2(a,b) OUT2(a,b)
#define cat cout << __LINE__ << endl
#define OUT(a) cout << (a) << endl
#define OUT2(a,b) cout << (a) <<" "<<(b) << endl
#define int long long
#define zero 0LL
#define pb PB
using namespace std;
template<typename T> inline bool middle(T a, T b, T c) { return b <= a && a <= c; }
template<class T> inline bool MX(T &l, const T &r) { return l < r ? l = r, 1 : 0; }
template<class T> inline bool MN(T &l, const T &r) { return l > r ? l = r, 1 : 0; }
typedef long long LL;
typedef double ld;
typedef LL ut;
typedef vector<ut> VI;
typedef vector<VI> VII;
typedef pair<ut, ut> pr;
typedef pair<ut, pr> ppr;
typedef vector<pr> Vpr;
typedef vector<ppr> Vppr;
typedef priority_queue<pr, Vpr ,greater<pr> > PQ;
inline void outputVI(VI x) { REP(i, SI(x)) { cout << three(i, " ", "") << x[i]; }OUT(""); }
int dx[] = { 0,1,0,-1,0 }, dy[] = { 1,0,-1,0,0 };
const int SIZE1 =3e5 + 1000;
const int SIZE2 = 5010;
const int SIZE3 = 22;
const int SIZE = SIZE1;
const LL p = 7 + 1e9;
const LL INF = 1LL << 60;
const long double EPS = 1e-7;
ut N, M, K, X, L, Y,H,W,Q;
// ut A,B,C,D,E,F,G,H,I,J,O,P,Q,R,T,U;
VI edges[SIZE];
LL vals[SIZE], nums[SIZE], maps[SIZE3][SIZE3], answer = zero;
LL A[SIZE], B[SIZE];
LL solve() {
	REP(i, 3) cin >> A[i];
	LL minium = 0;
	REP(i, 3) MX(minium, A[i]);
	REP(i, 3) if (minium == A[i]) {
		cout << (char)('A' + i) << endl;
	}

	return 0;
}
signed main() {
	ios_base::sync_with_stdio(false);
	cout << fixed << setprecision(10);

	solve();
//	cin >> N;
	return 0;
}

C++: #include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
  int a, b, c;
  cin >> a >> b >> c;
  if(a == max({a,b,c})) cout << "A" << endl;
  else if(b == max({a,b,c})) cout << "B" << endl;
  else if(c == max({a,b,c})) cout << "C" << endl;
}

C++: #include <bits/stdc++.h>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    if(a > b && a > c) cout << "A" << endl;
    else if(b > c) cout << "B" << endl;
    else cout << "C" << endl;
    return 0;
}

C++: #include<iostream>
#include<algorithm>
using namespace std;

int main(){
    int a, b, c;
    cin >> a >> b >> c;
    if(a > b && a > c)  cout << "A";
    if(b > a && b > c)  cout << "B";
    if(c > a && c > b)  cout << "C";
    cout << endl;
    return 0;
}

C++: //include
//------------------------------------------
#include <bits/stdc++.h>
using namespace std;

//typedef
//------------------------------------------
typedef long long LL;
typedef vector<LL> VL;
typedef vector<VL> VVL;
typedef vector<string> VS;
typedef pair<LL, LL> PLL;

//container util
//------------------------------------------
#define ALL(a)  (a).begin(),(a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define PB push_back
#define MP make_pair
#define SZ(a) int((a).size())
#define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i)
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define SORT(c) sort((c).begin(),(c).end())

//constant
//--------------------------------------------
const double EPS = 1e-10;
const double PI  = acos(-1.0);
const int MOD = 1000000007;

//debug
#define dump(x)  cerr << #x << " = " << (x) << endl;
#define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl;

//main code

int main(int argc, char const* argv[])
{
	int a,b,c;
	cin >> a >> b >> c;
	int m = max(a,max(b,c));
	if (m == a) {
		cout << "A" << endl;
	}
	else if (m == b) {
		cout << "B" << endl;
	}
	else {
		cout << "C" << endl;
	}
	return 0;
}