V = list(map(int, input().split())) M = max(V) ans = 10 ** 18 for A in range(1, M+1): for B in range(1, M+1): for C in range(1, M+1): dp = [10**18] * (M+1) dp[0] = 0 for i in range(1, M+1): if i - A >= 0: dp[i] = min(dp[i], dp[i-A] + 1) if i - B >= 0: dp[i] = min(dp[i], dp[i-B] + 1) if i - C >= 0: dp[i] = min(dp[i], dp[i-C] + 1) ans = min(ans, dp[V[0]] + dp[V[1]] + dp[V[2]] + dp[V[3]]) print(ans)