//#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

using namespace std;

//vector string deque break continue
#define forn(i, s, f) for (int i = (int)s; i < (int)f; i++)
#define ll long long
#define ull unsigned long long
#define ld long double
#define pii pair <int, int>
#define fs first
#define sc second
#define pf push_front
#define pb push_back
#define pop_f pop_front
#define pop_b pop_back
#define eb emplace_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define sz(x) (int)(x).size()

#ifdef DEBUG
#else
    #define cerr if (false) cerr
#endif

template <typename T> istream& operator>>(istream& in, vector <T>& a) {for (auto& i : a) in >> i; return in;}
template <typename T> ostream& operator<<(ostream& out, vector <T>& a)  {for (auto& i : a) out << i << " "; return out;}
template <typename T, typename U> void chkmin(T& a, U b) {if (a > b) a = b;}
template <typename T, typename U> void chkmax(T& a, U b) {if (a < b) a = b;}

int main() {
    ios_base::sync_with_stdio(0), cin.tie(0);
    vector<int> a(3);
    cin >> a;
    sort(all(a));
    cout << a[1] + a[2] << "\n";
    return 0;
}

//

#include <bits/stdc++.h>
#include <math.h>
#include <algorithm>
using namespace std;

int main()
{
    int A, B, C, ans = 0;
    cin >> A >> B >> C;
    if(A > B)
    {
        if(B > C)
        {
            ans += B + A;
        }
        else
        {
            ans += C + A;
        }
    }
    else
    {
        if(A > C)
        {
            ans += B + A;
        }
        else
        {
            ans += B + C;
        }
    }
    cout << ans << endl;
}