Problem:
Score : 300 points

Problem Statement

To make it difficult to withdraw money, a certain bank allows its customers to withdraw only one of the following amounts in one operation:

1 yen (the currency of Japan)

6 yen, 6^2(=36) yen, 6^3(=216) yen, ...

9 yen, 9^2(=81) yen, 9^3(=729) yen, ...

At least how many operations are required to withdraw exactly N yen in total?

It is not allowed to re-deposit the money you withdrew.

Constraints

1 \leq N \leq 100000

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

If at least x operations are required to withdraw exactly N yen in total, print x.

Sample Input 1

127

Sample Output 1

4

By withdrawing 1 yen, 9 yen, 36(=6^2) yen and 81(=9^2) yen, we can withdraw 127 yen in four operations.

Sample Input 2

3

Sample Output 2

3

By withdrawing 1 yen three times, we can withdraw 3 yen in three operations.

Sample Input 3

44852

Sample Output 3

16

Solution in C (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<stdio.h>

int calc(int n)
{
	int c=0;
	if(n>=59049){
		c+=n/59049;
		n=n%59049;
	}
	if(n>=46656){
		c+=n/46656;
		n=n%46656;
	}
	if(n>=7776){
		c+=n/7776;
		n=n%7776;
	}
	if(n>=6561){
		c+=n/6561;
		n=n%6561;
	}
	if(n>=1296){
		c+=n/1296;
		n=n%1296;
	}
	if(n>=729){
		c+=n/729;
		n=n%729;
	}
	if(n>=216){
		c+=n/216;
		n=n%216;
	}
	if(n>=81){
		c+=n/81;
		n=n%81;
	}
	if(n>=36){
		c+=n/36;
		n=n%36;
	}
	if(n>=9){
		if((n%9==3 || n%9==4)||n%9==5)
			c-=2;
		c+=n/9;
		n=n%9;
	}
	if(n>=6){
		c+=n/6;
		n=n%6;
	}
	c=c+n;
	return c;
}
		
int main(void)
{
	int n,ans;
	scanf("%d",&n);
	ans=calc(n);
	printf("%d",ans);
	return 0;
}