import java.util.*;

public class Euler74 {
    static int[] fac = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880 };
    static Map<Integer, Integer> memo = new HashMap<>();

    static int chainLength(int n) {
        if (memo.containsKey(n))
            return memo.get(n);
        List<Integer> visited = new ArrayList<>();
        Set<Integer> seen = new HashSet<>();
        int current = n;
        while (!seen.contains(current)) {
            if (memo.containsKey(current)) {
                int len = memo.get(current) + visited.size();
                for (int i = 0; i < visited.size(); i++)
                    memo.put(visited.get(i), len - i);
                return memo.get(n);
            }
            seen.add(current);
            visited.add(current);
            int next = 0;
            for (char c : Integer.toString(current).toCharArray())
                next += fac[c - '0'];
            current = next;
        }
        int cycleStart = visited.indexOf(current);
        int cycleLen = visited.size() - cycleStart;
        for (int i = 0; i < cycleStart; i++)
            memo.put(visited.get(i), visited.size() - i);
        for (int i = cycleStart; i < visited.size(); i++)
            memo.put(visited.get(i), cycleLen);
        return memo.get(n);
    }

    public static void main(String[] args) {
        int count = 0;
        for (int n = 1; n < 1000000; n++)
            if (chainLength(n) == 60)
                count++;
        System.out.println(count);
    }
}
