Задача №3784. Генерация размещений

Условия задач -- алгоритмы

Напомним, что размещения из n по k — выборки по k элементов из n возможных, причём порядок элементов в выборке важен («1 2» отличается от «2 1»).

Например, полный перечень всех возможных размещений из 3 по 2: (1,2), (1,3), (2,1), (2,3), (3,1), (3,2).

Напишите программу, которая по заданным n и k будет генерировать все возможные размещения из чисел 1, 2, ..., n по k. Размещения должны выводиться в лексикографическом (словарном) порядке.

Входные данные

В единственной строке через пробел заданы два числа — сначала n, потом k. Выполняются условия: k ≤ n ≤ 20; 1 ≤ k ≤ 7; количество искомых размещений Ank не превышает 104.

Выходные данные

Выведите найденные размещения, каждое в отдельной строке, в лексикографическом порядке. Внутри строки числа должны отделяться друг от друга единичными пробелами; лишние пробелы (в т. ч. перед первым и/или после последнего числа строки) запрещены.

Примечание

В данной задаче надо строго придерживаться формата вывода, т. к. засчитываться будут только точные совпадения байт-в-байт.

Примеры
Входные данные
3 2
Выходные данные
1 2
1 3
2 1
2 3
3 1
3 2
Сдать: для сдачи задач необходимо войти в систему