C. Варежки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

На новогоднюю елку в городе S. пришли n детей. Все дети пришли в варежках. Варежки бывают разных цветов, но у каждого ребенка и левая, и правая варежки были одинакового цвета. Пусть цвета варежек нумеруются целыми числами от 1 до m, а дети пронумерованы от 1 до n. Тогда у i-го ребенка обе варежки имели цвет ci.

На празднике был Дед Мороз, была Снегурочка, дети водили хоровод вокруг нарядно украшенной елки. В общем и целом все было настолько ярко и разноцветно, что детям вдруг перестало нравиться ходить в варежках одного цвета. Дети решили поменяться варежками таким образом, чтобы у каждого в итоге оказалась одна левая варежка, одна правая варежка, причем разного цвета. Все варежки имеют одинаковый размер, поэтому одинаково подходят всем детям.

Дети принялись беспорядочно обмениваться варежками, но у них никак не получалось добиться того, чтобы у всех были разноцветные пары варежек. Василий Петрович, папа одного из ребятишек, заметил, что, в общем случае желание детей может оказаться невыполнимым. Более того, как преподаватель математики, он предложил схему распределения варежек, при которой у наибольшего количества детей будет пара разноцветных варежек. Вам предстоит повторить его достижение. Помните, что левые и правые варежки отличаются: у каждого ребенка должна оказаться одна левая и одна правая варежка.

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

В первой строке записано два целых числа n и m — количество детей и количество возможных цветов варежек (1 ≤ n ≤ 5000, 1 ≤ m ≤ 100). Во второй строке записаны n целых чисел c1, c2, ... cn, где ci — цвет варежек i-го ребенка (1 ≤ ci ≤ m).

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

В первой строке выведите наибольшее количество детей, у которых может оказаться разноцветная пара варежек. В следующих n строках выведите то, как именно могут быть распределены варежки в этом случае. В i-й из этих строк выведите через пробел два числа: цвет левой варежки, которая окажется у i-го ребенка, и цвет правой варежки, которая у него окажется. Если оптимальных решений несколько, разрешается вывести любое из них.

Примеры
Входные данные
6 3
1 3 2 2 1 1
Выходные данные
6
2 1
1 2
2 1
1 3
1 2
3 1
Входные данные
4 2
1 2 1 1
Выходные данные
2
1 2
1 1
2 1
1 1