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}; int ans=0; Arrays.sort(c); 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); ans+=x; c[2]-=x*3; c[1]-=x; while(c[2]>3){ if(c[1]==0){ ans+=c[2]/5; break; } else if(c[1]>3){ ans+=(c[1]/4)*2; c[1]-=(c[1]/4)*4; c[2]-=(c[1]/4)*4; } else{ c[2]-=3; c[1]--; ans++; 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; } } }