import java.util.*; import java.lang.Math.*; public class ppp { public static void main(String[] args) { MyScanner sc=new MyScanner(); int r=sc.nextInt(); int g=sc.nextInt(); int b=sc.nextInt(); int c[]={r,g,b}; Arrays.sort(c); int ans=0; while(c[0]!=0){ ans+=c[0]; c[2]-=c[0]; c[1]-=c[0]; c[0]-=c[0]; int x=Math.min(c[1],(c[2]-c[1])/2); c[2]-=x*2; c[0]=x; ans+=c[0]; c[2]-=c[0]; c[1]-=c[0]; c[0]-=c[0]; Arrays.sort(c); if(c[1]>10000){ c[2]-=5000; c[1]-=5000; c[0]+=5000; } else{ if(c[2]-c[0]>2){ c[2]-=2; c[0]++; Arrays.sort(c); } } } System.out.println(ans); } } class MyScanner { int nextInt() { try { int c = System.in.read(); while (c != '-' && (c < '0' || '9' < c)) c = System.in.read(); if (c == '-') return -nextInt(); int res = 0; do { res *= 10; res += c - '0'; c = System.in.read(); } while ('0' <= c && c <= '9'); return res; } catch (Exception e) { return -1; } } double nextDouble() { return Double.parseDouble(next()); } long nextLong() { return Long.parseLong(next()); } String next() { try { StringBuilder res = new StringBuilder(""); int c = System.in.read(); while (Character.isWhitespace(c)) c = System.in.read(); do { res.append((char) c); } while (!Character.isWhitespace(c = System.in.read())); return res.toString(); } catch (Exception e) { return null; } } }