Гигаскелеты
시간 제한1초메모리 제한1024 MB
주어진 수들을 임의의 두 원소의 최소공배수를 나누어떨어뜨리는 원소가 그룹 안에 있도록 묶고, 각 그룹 최소공배수의 합이 최소가 되게 나눈다.
문제
В самый канун Хэллоуина скелетов со всех окрестных кладбищ планируют как следует напугать живых. Скелет под номером состоит из костей и обладает неуклюжестью .
Понятно, что чем более скелет неуклюжий, тем менее он страшный, а поэтому некоторые скелеты планируют собраться в гигаскелетов, чтобы минимизировать суммарную неуклюжесть. Каждый гигаскелет состоит из нескольких (возможно, одного) обычных скелетов, и его неуклюжесть определяется как НОК (наименьшее общее кратное) неуклюжестей входящих в него скелетов.
К сожалению, не любой набор скелетов может стать гигаскелетом --- если набор скелетов в гигаскелете не НОК-широкий, в какой-то момент гигаскелет просто комично развалится. Набор скелетов называется НОК-широким тогда и только тогда, когда для любых и из набора найдется такой тоже из набора, что НОК.
Поскольку цель скелетов, все-таки --- напугать людей, а не насмешить, они хотят разбиться на НОК-широкие группы так, чтобы суммарная неуклюжесть получаемых из них гигаскелетов была как можно меньше. Помогите им в осуществлении этого злодейского плана!
입력
В первой строке дано целое число ().
Во второй строке через пробел перечислены целых чисел () --- количество костей в каждом скелете.
출력
Выведите в первой строке целое число --- количество гигаскелетов, которые следует собрать, чтобы минимизировать их суммарную неуклюжесть.
В следующих строках выведите описания гигаскелетов по одному на строке. В каждом описании выведите сначала количество скелетов в гигаскелете, а затем через пробел количество костей в каждом из них.
Если возможных оптимальных ответов несколько, выведите любой.
힌트
Обратите внимание, любой скелет сам по себе обраузет НОК-широкую группу и может собраться в небольшого гигаскелета в одиночку.