#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2>
ostream& operator<<(ostream& cout, const pair<T1, T2>& a) {
  return cout << "(" << a.first << "; " << a.second << ")";
}
template <typename T>
ostream& operator<<(ostream& cout, const vector<T>& a) {
  if (a.size() == 0) {
    return cout << "()";
  }
  cout << "(" << a[0];
  for (int i = 1; i < (int)a.size(); i++) {
    cout << "; " << a[i];
  }
  return cout << ")";
}
template <typename T>
ostream& operator<<(ostream& cout, const set<T>& a) {
  if (a.size() == 0) {
    return cout << "{}";
  }
  auto it = a.begin();
  cout << "{" << *it;
  ++it;
  for (; it != a.end(); ++it) {
    cout << "; " << *it;
  }
  return cout << "}";
}
long long a1, a2, a3;
int main() {
  cin >> a1;
  cin >> a2;
  cin >> a3;
  cout << min({(a1 + a2) * 2, a1 + a3 + a2, (a1 + a3) * 2, (a2 + a3) * 2});
}
