Петрик — сумлінний учень, який мріє стати програмістом. На останньому уроці інформатики його улюблена вчителька запропонувала йому розв'язати таке завдання. Нехай a_1, \ldots, a_N — певна послідовність натуральних чисел. Петрику потрібно розділити послідовність чисел 1, 2, 3, \ldots, N на дві послідовності b_1, \ldots, b_M і c_1, \ldots, c_K таким чином, щоб:
• Кожне натуральне число 1 \leq r \leq N було елементом рівно однієї з послідовностей або (тому M + K = N).
• Для кожної пари індексів 1 \leq i, j \leq M, i \neq j, числа a_{b_i} і a_{b_j} були взаємно простими.
• Для кожної пари індексів 1 \leq i, j \leq K, i \neq j, числа a_{c_i} і a_{c_j} були взаємно простими.
Взаємно простими називаються числа, найбільший спільний дільник яких дорівнює одиниці. Назвемо відповідний поділ послідовності 1, 2, 3, \ldots, N розбиттям послідовності a_i.
Розбиття послідовності може бути неоднозначне. Тому вчителька попросила Петрика знайти таке розбиття, що максимізує кількість елементів у послідовності b_i. Якщо існує кілька розбиттів, що максимізують кількість елементів у послідовності b_i, то потрібно знайти серед них таке, щоб послідовність b_i була лексикографічно найменшою.
Будемо казати, що послідовність q_1, q_2, \ldots, q_W є лексикографічно меншою за послідовність p_1, p_2, \ldots, p_W, якщо існує таке , що q_i < p_i, а для довільного j < i виконується p_j = q_j.
Напишіть програму, яка для заданої послідовності чисел знайде оптимальне розбиття послідовності чисел 1, 2, 3, \ldots, N на дві послідовності b_1, \ldots, b_M і c_1, \ldots, c_K.
У першому рядку вхідних даних записано число (1 \leq Z \leq 3) — кількість тестових вхідних даних (учителька кілька разів пропонувала Петрику розв'язати це завдання для різних вхідних даних).
Далі подаються тестових даних у такому форматі.
У першому рядку даних міститься число (1 \leq N \leq 100\,000) — кількість елементів у послідовності . У наступному рядку записано чисел, розділених одиничними пропусками, — елементи послідовності (1 \leq a_i \leq 2\,000\,000).
Для кожних тестових даних виведіть у вихідний файл в одному рядку число — кількість елементів у послідовності , а у другому — натуральних чисел — у порядку зростання номери елементів послідовності , що увійшли до послідовності .
Якщо так трапиться, що вчителька помилилась і не існує жодного розбиття послідовності , то виведіть в одному рядку .
Приклад 1
У першому наборі тестових даних не можна отримати розбиття, де в послідовності містилися б усі елементи 1, 2, \ldots, N, тому що числа і не взаємно прості. А в наступному наборі тестових даних взагалі не існує жодного розбиття послідовності .
Набір тестів складається з блоків, для кожного з яких виконуються такі умови:
балів: N \leq 15, 1 \leq a_i \leq 2\,000\,000.
балів: N \leq 1000, 1 \leq a_i \leq 2\,000\,000.
балів: N \leq 20\,000, 1 \leq a_i \leq 2\,000\,000.
балів: N \leq 100\,000, 1 \leq a_i \leq 2\,000\,000.