package main

import (
	"fmt"
	"math"
)

func main() {
	var r, g, b, ans int
	_, _ = fmt.Scan(&r, &g, &b)

	// 1個ずつ減らす
	if r <= g && r <= b {
		r, g, b, ans = 0, g-r, b-r, r
	} else if g <= r && g <= b {
		r, g, b, ans = r-g, 0, b-g, g
	} else if b <= r && b <= g {
		r, g, b, ans = r-b, g-b, 0, b
	}

	// fmt.Println(r, g, b, ans)

	// 少ない方から1つ、多い方から3つ取るってのを最大2回
	for i := 0; i < 2; i++ {
		if r == 0 && g > 0 && b > 0 {
			if g > b {
				n := int(math.Min(float64(g/3), float64(b)))
				g, b, ans = g-3*n, b-n, ans+n
			} else {
				n := int(math.Min(float64(b/3), float64(g)))
				g, b, ans = g-n, b-3*n, ans+n
			}
		} else if g == 0 && r > 0 && b > 0 {
			if r > b {
				n := int(math.Min(float64(r/3), float64(b)))
				r, b, ans = r-3*n, b-n, ans+n
			} else {
				n := int(math.Min(float64(b/3), float64(r)))
				r, b, ans = r-n, b-3*n, ans+n
			}
		} else if b == 0 && r > 0 && g > 0 {
			if r > g {
				n := int(math.Min(float64(r/3), float64(g)))
				r, g, ans = r-3*n, g-n, ans+n
			} else {
				n := int(math.Min(float64(g/3), float64(r)))
				r, g, ans = r-n, g-3*n, ans+n
			}
		}
	}

	// fmt.Println(r, g, b, ans)

	// 5つ取る
	if r == 0 && g == 0 && b >= 5 {
		b, ans = b%5, ans+b/5
	} else if r == 0 && g >= 5 && b == 0 {
		g, ans = g%5, ans+g/5
	} else if r >= 5 && g == 0 && b == 0 {
		r, ans = r%5, ans+r/5
	}

	// fmt.Println(r, g, b, ans)

	fmt.Println(ans)
}