public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println(exchange(n , new int[n+1]));
}
static int exchange(int n , int[] arr)
{
if(n==0) return 0;
if(n==1) return 1;
if(arr[n]!=0) return arr[n];
int max = exchange(n/2 , arr) + exchange(n/3 , arr) + exchange(n/4 , arr);
max=Math.max(max, n);
arr[n]=max;
return max;
// int[] storage = new int[n+1];
// storage[1]=1;
//
// for(int j=2 ; j<=n ; j++)
// {
// storage[j] = Math.max( j , storage[j/2] + storage[j/3] + storage[j/4] );
// }
//
// return storage[n];
}