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()