Лаврушка і розбиття масиву
Лаврушка — сумлінний учень, який мріє стати програмістом. На останньому уроку інформатики його улюблена вчителька запропонувала йому розв’язати таке завдання. Нехай — певна послідовність натуральних чисел. Лаврушці потрібно розділити послідовність чисел на дві послідовності і таким чином, щоб:
Кожне натуральне число було елементом рівно однієї з послідовностей або (тому ).
Для кожної пари індексів , , числа і були взаємно простими.
Для кожної пари індексів , , числа і були взаємно простими.
Взаємно простими називаються числа, найбільший спільний дільник яких дорівнює одиниці. Назвемо відповідний поділ послідовності розбиттям послідовності .
Розбиття послідовності може бути неоднозначне. Тому вчителька попросила Лаврушу знайти таке розбиття, що максимізує кількість елементів у послідовності . Якщо існує кілька розбиттів, що максимізують кількість елементів у послідовності , то потрібно знайти серед них таке, щоб послідовність була лексикографічно найменшою.
Будемо казати, що послідовність є лексикографічно меншою за послідовність , якщо існує таке , що , а для довільного виконується .
Завдання
Напишіть програму split, яка для заданої послідовності чисел a знайде оптимальне розбиття послідовності чисел на дві послідовності і .
Вхідні дані
У першому рядку вхідного файла записано число () — кількість тестових вхідних даних (учителька кілька разів пропонувала Лаврушці розв’язати це завдання для різних вхідних даних).
Далі подаються тестових даних у такому форматі.
У першому рядку даних міститься число () — кількість елементів у послідовності .
У наступному рядку записано чисел, розділених одиничними пропусками, — елементи послідовності ().
Вихідні дані
Для кожних тестових даних виведіть у вихідний файл в одному рядку число — кількість елементів у послідовності , а у другому — натуральних чисел — у порядку зростання номери елементів послідовності , що увійшли до послідовності .
Якщо так трапиться, що вчителька помилилась і не існує жодного розбиття послідовності , то виведіть в одному рядку .
Приклади
Примітка
У першому наборі тестових даних не можна отримати розбиття, де в послідовності містилися б усі елементи , тому що числа і не взаємно прості. А в наступному наборі тестових даних взагалі не існує жодного розбиття послідовності .
Оцінювання
Набір тестів складається з 4 блоків, для кожного з яких виконуються такі умови:
( балів): ; ;
( балів): ; ;
( балів): ; ;
( балів): ; .