Ящики и шары

Пусть есть k ящиков, пронумерованных числами от 1 до k, и N абсолютно одинаковых шаров. Рассмотрим всевозможные способы распределения шаров по ящикам так, чтобы все шары были распределены по ящикам, и ни один ящик при этом не был пуст. Каждое размещение будем задавать набором из k чисел, показывающих, сколько шаров находится в каждом из ящиков. Все размещения упорядочим в лексикографическом порядке, т.е., например, при N=5, k=3 размещения будут идти в следующем порядке: (1,1,3), (1,2,2), (1,3,1), (2,1,2), (2,2,1), (3,1,1).

Входные данные
Во входном файле записаны сначала числа N и k (1≤kN≤100), а затем набор из k чисел, задающих размещение.

Выходные данные
В выходной файл вывести номер этого размещения при таком упорядочении.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
5 3
2 1 2
  
4
 

Перестановка

Во входном файле задано число N. Вывести все перестановки из N элементов так, чтобы любые две соседние перестановки отличались перестановкой двух соседних элементов.

Входные данные
Во входном файле записано число N (1≤N≤9).

Выходные данные
В выходной файл вывести все перестановки в порядке, удовлетворяющем условию.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
3
  
1 2 3
1 3 2
3 1 2
3 2 1
2 3 1
2 1 3