Загрузка данных


import sys

def solve():
    # Чтение входных данных
    try:
        line = sys.stdin.read().split()
        if not line:
            return
        n = int(line[0])
        k = int(line[1])
    except EOFError:
        return

    # Если число одноразрядное, выводим цифры от 0 до 9
    if n == 1:
        for i in range(10):
            print(i)
        return

    results = []

    def backtrack(current_num, last_digit, length):
        # Базовый случай: число нужной длины сформировано
        if length == n:
            results.append(current_num)
            return

        # Пробуем вычесть K
        if last_digit - k >= 0:
            backtrack(current_num + str(last_digit - k), last_digit - k, length + 1)
        
        # Пробуем прибавить K (только если K > 0, чтобы избежать дублей)
        if k > 0 and last_digit + k <= 9:
            backtrack(current_num + str(last_digit + k), last_digit + k, length + 1)

    # Число не может начинаться с 0
    for first_digit in range(1, 10):
        backtrack(str(first_digit), first_digit, 1)

    # Вывод всех найденных чисел
    if results:
        print('\n'.join(results))

if __name__ == "__main__":
    solve()