#include using namespace std; using ll = long long; using vi = vector; using vb = vector; using vd = vector; using vl = vector; using vvi = vector; using vvb = vector; using vvd = vector; using vvl = vector; #define REP(i,n) for(ll i=0; i<(n); ++i) #define FOR(i,b,n) for(ll i=(b); i<(n); ++i) int main() { ll v0, v1, v2, v3; cin >> v0 >> v1 >> v2 >> v3; ll ans = 150; FOR(a, 1, 31) FOR(b, 1, 31) FOR(c, 1, 31) { vi dp(31, 150); dp[0] = 0; REP(i, dp.size()) { if (i + a < dp.size()) dp[i + a] = min(dp[i + a], dp[i] + 1); if (i + b < dp.size()) dp[i + b] = min(dp[i + b], dp[i] + 1); if (i + c < dp.size()) dp[i + c] = min(dp[i + c], dp[i] + 1); } ans = min(ans, dp[v0] + dp[v1] + dp[v2] + dp[v3]); } cout << ans << endl; return 0; }