#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <climits>
#include <cstdint>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iomanip>
#include <iostream>
#include <map>
#include <memory>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <stack>
#include <string>
#include <unordered_set>
#include <unordered_map>
#include <vector>

using namespace std;
#define ll long long
#define M 1000000007
#define pb push_back
#define bg begin
#define all(x) x.bg(),x.end()
#define pob pop_back
#define rep(x,y,j) for(ll j = x;j < y ;j++)
#define sz size
#define ss second
#define ff first
#define SUM accumulate
#define INF 2000000000000000000
#define SPACE " "
#define vr std::vector
#define que queue
#define dqu deque
#define stk stack
#define pqu priority_queue
#define mst multiset
#define pf push_front
#define pof pop_front
#define sqr(x) ((x)*(x))
#define cube(x) (x)*sqr(x)
// graph class




void solve(){
    // std::cout << std::setprecision(9) << std::showpoint << std::fixed;

ll a,b,c;
cin >> a>>b>>c;
cout << max(a+b,max(b+c,c+a))<<endl;

    





}
 
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  // freopen("input.txt", "r", stdin);
  // freopen("output.txt", "w", stdout);
  int tt= 1;
  // cin >> tt;
  while (tt--) {
    solve();
    
    
  }
  return 0;
}
#include <bits/stdc++.h>
using namespace std;

void printmat(const vector<vector<char>>& mat) {
    for (auto row : mat) {
        for (auto elem : row)
            cout << elem << " ";
        cout << endl;
    }
}
void printv(const vector<long long>& v) {
    for (auto elem : v)
        cout << elem << " ";
    cout << endl;
}
void printht(const unordered_map<long long, int>& ht) {
    for (auto elem : ht)
        cout << elem.first << " : " << elem.second << endl;
}
void printmp(const map<int, int>& ht) {
    for (auto elem : ht)
        cout << elem.first << " : " << elem.second << endl;
}
void printst(const set<int>& st) {
    for (auto elem : st)
        cout << elem << " ";
    cout << endl;
}


int main() {
    int T=1, caseIdx=0;
    //cin >> T;  
    while (T--) {
        //caseIdx++;
        vector<int> v(3);
        cin >> v[0] >> v[1] >> v[2];
        cout << (accumulate(v.begin(), v.end(), 0) - *min_element(v.begin(), v.end())) << endl;
        //cout << "Case #" << caseIdx << ": " << ans << endl;
    }
}




