Эксперименттік сұрыптау


Шешімді жөнелту

Ұпайлар: 1
Уақыт шектеуі: 1.0s
Жад шектеуі: 256M

Author:
Problem types
Рұқсат етілген тілдер
Assembly, Awk, Brain****, C, C++, Go, Java, Pascal, Perl, PHP, Python, Sed, Text

Зертхананың бірінде жаңа прототиптік сұрыптау құрылғысы сынақтан өтіп жатыр. Бұл құрылғы әдеттегі элементтерді алмастыру немесе стандартты сұрыптау операцияларын орындай алмайды. Оның орнына тек бір ғана ерекше операцияны қолдайды:

  • бір санды \(k\) таңдау (\(1 \le k \le n\));

  • ұзындығы \(n\) болатын массивті \(k\) тізбектей орналасқан бос емес бөліктерге бөлу;

  • осы \(k\) бөліктің әрқайсысын терісіне айналдыру.

Мысалы, егер массив \[[5, 2, 4, 3, 1],\] түрінде берілсе, және \(k = 2\) таңдап, оны \[[5, 2, 4] \quad \text{және} \quad [3, 1],\] бөліктеріне бөлсек, операциядан кейін массив келесідей болады: \[[4, 2, 5, 1, 3].\]

Сіздің мақсатыңыз — берілген массивті өспелі ретпен сұрыптау, ең көп дегенде \(70\) операцияны қолданып

Мұны \(1 \le n \le 1000\) кезінде әрқашан жасауға болатынын көрсетуге болады.

Енгізу

Бірінші жолда бүтін сан \(t\) (\(1 \le t \le 100\)) — тесттердің саны беріледі.

Әрі қарай тесттердің сипаттамалары келтіріледі.

Әр тесттің бірінші жолында бүтін сан \(n\) (\(1 \le n \le 1000\)) — массивтің ұзындығы.

Екінші жолда \(n\) бүтін сан \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)) беріледі.

Шығару

Әр тест үшін шығарыңыз:

  • алдымен бүтін сан \(m\) (\(0 \le m \le 70\)) — орындалған операциялар саны;

  • содан кейін \(m\) жол. Әр операцияны сипаттау үшін алдымен сан \(k\), содан соң \(k\) сан \(c_1, c_2, \ldots, c_k\) беріледі, мұндағы \(c_i\) — таңдалған тізбектей орналасқан бөліктердің ұзындықтары (\(c_1 + c_2 + \cdots + c_k = n\)).

Мысалдар

Енгізу 1
3
4
3 3 2 1
5
5 2 4 3 1
3
10 10 10
Жауап 1
1
1 4
3
1 5
3 1 3 1
4 1 1 2 1  
0