#include <iostream>
#include <cmath>
#include <unordered_map>
using namespace std;
typedef unordered_map<int, long long> Map;
long long cMax(Map *orig, int val)
{
if((*orig).find(val) == (*orig).end())
{
long long sum = cMax(orig, val/2) + cMax(orig, val/3) + cMax(orig, val/4);
(*orig).emplace(val, val < sum ? sum : val);
}
return (*orig).find(val)->second;
}
int main()
{
int n;
Map first = {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {6, 6}, {7, 7}, {8, 8}, {9, 9}, {10, 10}, {11, 11}};
for(; scanf("%d", &n) != EOF; printf("%d\n", cMax(&first, n)));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgdW5vcmRlcmVkX21hcDxpbnQsIGxvbmcgbG9uZz4gTWFwOwoKbG9uZyBsb25nIGNNYXgoTWFwICpvcmlnLCBpbnQgdmFsKQp7CglpZigoKm9yaWcpLmZpbmQodmFsKSA9PSAoKm9yaWcpLmVuZCgpKQoJewoJCWxvbmcgbG9uZyBzdW0gPSBjTWF4KG9yaWcsIHZhbC8yKSArIGNNYXgob3JpZywgdmFsLzMpICsgY01heChvcmlnLCB2YWwvNCk7CgkJKCpvcmlnKS5lbXBsYWNlKHZhbCwgdmFsIDwgc3VtID8gc3VtIDogdmFsKTsKCX0KCQoJcmV0dXJuICgqb3JpZykuZmluZCh2YWwpLT5zZWNvbmQ7Cn0KCmludCBtYWluKCkKewoJaW50IG47CglNYXAgZmlyc3QgPSB7ezEsIDF9LCB7MiwgMn0sIHszLCAzfSwgezQsIDR9LCB7NSwgNX0sIHs2LCA2fSwgezcsIDd9LCB7OCwgOH0sIHs5LCA5fSwgezEwLCAxMH0sIHsxMSwgMTF9fTsKCQoJZm9yKDsgc2NhbmYoIiVkIiwgJm4pICE9IEVPRjsgcHJpbnRmKCIlZFxuIiwgY01heCgmZmlyc3QsIG4pKSk7Cn0=