#include <iostream>
#include <map>
using namespace std;
long int solve(long int n, map<int, long int> mp) {
if(n<=1)
return n;
if(mp.size())
return mp[n];
long int ans = max(n, solve(n/2, mp)+solve(n/3, mp) + solve(n/4, mp));
mp.insert(pair<int, long int> (n, ans));
return ans;
}
int main() {
long int n;
cin >> n;
// long int dp[n+1] = {0};
map<int, long int> mp;
// memset(map, 0, sizeof(map));
cout << solve(n, mp) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgaW50IHNvbHZlKGxvbmcgaW50ICBuLCBtYXA8aW50LCBsb25nIGludD4gbXApIHsKCWlmKG48PTEpCgkJcmV0dXJuIG47CgoJaWYobXAuc2l6ZSgpKQoJCXJldHVybiBtcFtuXTsKCglsb25nIGludCBhbnMgPSBtYXgobiwgc29sdmUobi8yLCBtcCkrc29sdmUobi8zLCBtcCkgKyBzb2x2ZShuLzQsIG1wKSk7CgoJbXAuaW5zZXJ0KHBhaXI8aW50LCBsb25nIGludD4gKG4sIGFucykpOwoJcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKSB7CgoJbG9uZyBpbnQgbjsKCWNpbiA+PiBuOwoKCS8vIGxvbmcgaW50IGRwW24rMV0gPSB7MH07CgoJbWFwPGludCwgbG9uZyBpbnQ+IG1wOwoKCS8vIG1lbXNldChtYXAsIDAsIHNpemVvZihtYXApKTsKCgljb3V0IDw8IHNvbHZlKG4sIG1wKSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=