#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;
}