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

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(void){
  vector<int> A(3);
  cin >> A[0] >> A[1] >> A[2];
  char ans = max_element(A.begin(), A.end()) - A.begin();
  printf("%c\n", ans + 'A');
}

C++: #include <bits/stdc++.h>

using namespace std;
using ll = long long;
using ull = unsigned long long;
template <class T> using V = vector<T>;
template <class T> using VV = V<V<T>>;

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

C++: #include <iostream>
#include <queue>

class Compare {
public:
    bool operator()(std::pair<int, char> a, std::pair<int, char> b) {
        return (a.first < b.first);
    }
};

int main()
{
    char menu[] = {'A', 'B', 'C'};
    std::priority_queue<std::pair<int, char>, std::vector<std::pair<int, char>>, Compare> pq;
    int tmp;
    for (int i = 0; i < 3; i++) {
        std::cin >> tmp;
        pq.push(std::make_pair(tmp, menu[i]));
    }
    std::cout << pq.top().second << std::endl;
    return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;

#define REP(i,n) for(ll (i) = (0);(i) < (n);++i)
#define REV(i,n) for(ll (i) = (n) - 1;(i) >= 0;--i)
#define PB push_back
#define EB emplace_back
#define MP make_pair
#define FI first
#define SE second
#define SHOW1d(v,n) {REP(WW,n)cerr << v[WW] << ' ';cerr << endl << endl;}
#define SHOW2d(v,WW,HH) {REP(W_,WW){REP(H_,HH)cerr << v[W_][H_] << ' ';cerr << endl;}cerr << endl;}
#define ALL(v) v.begin(),v.end()
#define Decimal fixed<<setprecision(20)
#define INF 1000000000
#define LLINF 1000000000000000000LL
#define MOD 998244353
#define fastcin() cin.tie(0);ios::sync_with_stdio(false)

typedef long long ll;
typedef pair<ll,ll> P;

int main(){

	ll a, b , c;cin >> a >> b >> c;
	if(a > b && a > c)cout << "A" << endl;
	if(b > a && b > c)cout << "B" << endl;
	if(c > a && c > b)cout << "C" << endl;

	return 0;
}

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

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

C++: #include <iostream>

using namespace std;

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

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>
#include<vector>
using namespace std;

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

C++: #include<bits//stdc++.h>
using namespace std;
int main(){
    int a,b,c;cin >>a >>b >>c;
    if(a == max(a,max(b,c))) cout << "A" << endl;
    else if(b > c) cout << "B" <<endl;
    else cout << "C" <<endl;
}

C++: #include<bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
typedef long long LL;
int N;

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

C++: #include <bits/stdc++.h>

using namespace std;

using int64 = long long;

int main() {
  int A, B, C;
  cin >> A >> B >> C;
  if(A > B && A > C) puts("A");
  else if(B > A && B > C) puts("B");
  else puts("C");


}

C++: //↓template↓

#include "bits/stdc++.h"
using namespace std;
#define Would
#define you
#define all(n)  n.begin(),n.end()
const long long INF = 1e18;
const long long MOD = 1e9 + 7;
const double pi = acos(-1);
const int SIZE = 1 << 17;
int dx[] = { 1,0 }, dy[] = { 0,1 }, alp[30];
long long fac[200005], finv[200005], inv[200005];
vector<long long>dij;
struct edge { long long to, cost; };
vector<vector<edge> >G;

long long mod_pow(long long a, long long b) {
	long long res = 1, mul = a;
	for (int i = 0; i < 31; ++i) {
		if (b >> i & 1) {
			res *= mul;
			res %= MOD;
		}
		mul = (mul * mul) % MOD;
	}

	return res;
}

void addedge(int from, int to, int cost) {
	G[from].push_back({ to,cost });
	G[to].push_back({ from,cost });
}

//↑template↑

char out = 'C';
int main() {
	int a, b, c;
	cin >> a >> b >> c;
	int ans = max({ a,b,c });

	if (ans == a) { out = 'A'; }
	else if (ans == b) { out = 'B'; }

	cout << out << endl;
}

C++: #include <iostream>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <vector>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <algorithm>
#include <array>
#include <bitset>
using namespace std;

#define REP(i,n) for(int i=0; i<n; ++i)
#define FOR(i,a,b) for(int i=a; i<=b; ++i)
#define FORR(i,a,b) for (int i=a; i>=b; --i)
#define ALL(c) (c).begin(), (c).end()

typedef long long ll;
typedef vector<int> VI;
typedef vector<ll> VL;
typedef vector<VI> VVI;
typedef vector<VL> VVL;
typedef pair<int,int> P;
typedef pair<ll,ll> PL;

int in() { int x; scanf("%d", &x); return x; }
ll lin() { ll x; scanf("%lld", &x); return x; }

int main() {
    VI a(3);
    REP(i,3) cin >> a[i];
    int i = max_element(ALL(a)) - a.begin();
    cout << char('A' + i) << endl;
    return 0;
}