Алмастыруларды біріктіру
Берілген массив \(a\), ол мүмкін келесі түрде алынған: \(1\)-ден \(k_1\)-ге дейінгі сандардың алмастыруын алып, оң жағына \(1\)-ден \(k_2\)-ге дейінгі алмастыруды, содан кейін \(1\)-ден \(k_3\)-ке дейінгі алмастыруды және т.с.с. қосып, \(1\)-ден \(k_s\)-ке дейінгі алмастыруды қосқанша. Басқаша айтқанда, мұндай массив \(s\) тізбектелген блоктардың конкатенациясы болып табылады, мұнда әр блок — кейбір бүтін \(k_i \ge 1\) үшін \([1..k_i]\) алмастырылуы.
Берілген массив \(a\) бойынша блоктардың ұзындықтарының кез келген сәйкес келетін тізбегін \(k_1, k_2, \dots, k_s\) қалпына келтіру қажет. Егер бұл мүмкін болмаса, \(-1\) шығарыңыз.
Егер бірнеше дұрыс жауаптар болса, олардың кез келгенін шығарыңыз.
Енгізу
Бірінші жолда бір бүтін сан \(t\) (\(1 \le t \le 2 \cdot 10^5\)) — тестілер саны.
Келесіде тестілердің сипаттамалары. Әр тест үшін:
бірінші жолда бір бүтін сан \(m\) (\(1 \le m \le 2 \cdot 10^5\)) — массивтің ұзындығы;
екінші жолда \(m\) бүтін сан \(a_1, a_2, \dots, a_m\) (\(1 \le a_i \le m\)) бар.
Барлық тестілер бойынша \(m\) сандарының қосындысы \(2 \cdot 10^5\)-тен аспайтынына кепілдік беріледі.
Шығару
Әр тест үшін шығарыңыз:
егер бөліну мүмкін болса — бірінші жолда бүтін сан \(s\) (блоктар саны), екінші жолда \(s\) бүтін сан \(k_1, k_2, \dots, k_s\) (блоктардың ұзындықтары солдан оңға);
әйтпесе, бір ғана жол \(-1\) шығарыңыз.
Мысалдар
Енгізу 1
3
8
2 1 1 2 3 3 1 2
5
1 2 1 4 3
4
2 1 1 3
Жауап 1
3
2 3 3
2
1 4
-1