'''
Задание 23 № 18598
Исполнитель РазДваТри преобразует число на экране.
У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 2
3. Умножить на 3
Первая команда увеличивает число на экране на 1, вторая умножает его на 2, третья умножает на 3.
Программа для исполнителя РазДваТри — это последовательность команд. Сколько существует программ,
которые преобразуют исходное число 1 в число 40, и при этом траектория вычислений содержит число 12
и не содержит числа 14?
Траектория вычислений — это последовательность результатов выполнения всех команд программы.
Например, для программы 312 при исходном числе 4 траектория будет состоять из чисел 9, 10, 20.
'''


def count_ways(start, end):
    '''
    фактически считает путь от y до x? Всё равно в какую сторону двигаться.
    Так удобнее, чтобы не возиться с проверкой кратности числа (двум в данном примере)
    '''
    if start == 14:  # 14 - пропускаемая ячейка
        return 0
    if start > end:
        return 0
    if start == end:
        return 1
    return count_ways(start + 1, end) + count_ways(start * 2, end) + count_ways(start * 3, end)


# 12 - обязательная ячейка
print(count_ways(1, 12) * count_ways(12, 40))
