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 main () {
	int n;
	scanf ("%d", &n);

	int num=0;
	while (n > 0) {
		int max6, max9, no6, no9;
		for (max9=9, no9=0; max9<=n; max9*=9, no9++);
		for (max6=6, no6=0; max6<=n; max6*=6, no6++);
		max9 /= 9;
		max6 /= 6;
		if (no9) {
			if (max9 > max6) {
				n -= max9;
				num ++;
//				printf ("%d**%d\n", 9, no9);
			} else {
				n -= max6;
				num ++;
//				printf ("%d**%d\n", 6, no6);
			}
		} else if (no6) {
			n -= max6;
			num += no6 ;
//				printf ("%d**%d\n", 6, no6);

		} else {
			num += n;
//			printf ("%dx%d\n", 1, n);
			n = 0;
		}
	}

	printf ("%d\n", num);

	return 0;
}