Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

func configure(scanner *bufio.Scanner) {
	scanner.Split(bufio.ScanWords)
	scanner.Buffer(make([]byte, 1000005), 1000005)
}
func getNextString(scanner *bufio.Scanner) string {
	scanned := scanner.Scan()
	if !scanned {
		panic("scan failed")
	}
	return scanner.Text()
}
func getNextInt(scanner *bufio.Scanner) int {
	i, _ := strconv.Atoi(getNextString(scanner))
	return i
}
func getNextInt64(scanner *bufio.Scanner) int64 {
	i, _ := strconv.ParseInt(getNextString(scanner), 10, 64)
	return i
}
func getNextFloat64(scanner *bufio.Scanner) float64 {
	i, _ := strconv.ParseFloat(getNextString(scanner), 64)
	return i
}
func main() {
	fp := os.Stdin
	wfp := os.Stdout
	extra := 0
	if os.Getenv("I") == "IronMan" {
		fp, _ = os.Open(os.Getenv("END_GAME"))
		extra = 100
	}
	scanner := bufio.NewScanner(fp)
	configure(scanner)
	writer := bufio.NewWriter(wfp)
	defer func() {
		r := recover()
		if r != nil {
			fmt.Fprintln(writer, r)
		}
		writer.Flush()
	}()
	solve(scanner, writer)
	for i := 0; i < extra; i++ {
		fmt.Fprintln(writer, "-----------------------------------")
		solve(scanner, writer)
	}
}
func solve(scanner *bufio.Scanner, writer *bufio.Writer) {
	a := getNextInt(scanner)
	b := getNextInt(scanner)
	c := getNextInt(scanner)
	if a == most(a, b, c) {
		fmt.Fprintln(writer, "A")
		return
	}
	if b == most(a, b, c) {
		fmt.Fprintln(writer, "B")
		return
	}
	fmt.Fprintln(writer, "C")
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}
func most(a, b, c int) int {
	return max(a, max(b, c))
}

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;
}