Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

ZFIRM - Фирменный товар

На рынке n торговцев. Каждый имеет для обмена некоторый фирменный товар (ни у кого другого такого товара нет). Кроме того, каждый хочет в результате обменов получить некоторый фирменный товар, имеющийся на рынке, причем оказалось так, что для любого товара его хочет получить ровно один торговец.

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

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

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

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

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

Для каждого из тестов требуется указать минимальное количество дней m, требуемых для осуществления обменов. Затем в последующих m строках следует указать, как именно следует осуществлять обмены. Одна строка соответствует одному дню. В начале строки идет число, указывающее количество обменов в этот день. Далее перечисляются все пары торговцев, обменивающихся в этот день. Пары отделяются друг от друга символом "пробел", номера торговцев в паре отделяются друг от друга символом "-". Если существует несколько способов осуществить обмены за минимальное время, то достаточно вывести описание любого из них.

Пример

Входные данные:
7
2 1 3 5 6 7 4

Выходные данные:
2
3 1-2 4-5 7-6
1 5-7

Автор задачи: Филимоненков Д.О.


Added by:Roman Sol
Date:2006-05-05
Time limit:0.100s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:ADA95 ASM32 GAWK BASH BF C CSHARP C++ 4.3.2 CPP C99 CLPS CLOJURE LISP sbcl LISP clisp D FSHARP FORTRAN GO HASK ICON ICK JAVA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYTHON3 PY_NBC RUBY SCALA SCM guile SCM qobi ST TCL TEXT WHITESPACE
Resource:ZCon 2007

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.