#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define nl "\n"
#define OO 0x3f3f3f3f
const ll dx[] = {0, 0, 1, -1, -1, -1, 1, 1};
const ll dy[] = {1, -1, 0, 0, 1, -1, 1, -1};
const ll dir[] = {0, 1, 2, 3};
using namespace std;
void ta2to2a()
{
ios_base::sync_with_stdio(false), cout.tie(nullptr), cin.tie(nullptr);
if (fopen("input.txt", "r"))
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
}
}
map<ll,ll>m;
map<ll,vector<ll>>mp;
void divisors(ll n)
{
for (ll i=1; i*i<=n; i++)
{
while (n%i==0 && m[i])
{
mp[n].push_back(i);
m[i]--;
}
while (m[n/i] && n%i==0)
{
mp[n].push_back(n/i);
m[n/i]--;
}
}
}
int main()
{
ta2to2a();
ll n;
cin >> n;
vector<ll> a(n);
for (ll i = 0; i < n; i++)
{
cin >> a[i];
m[a[i]]++;
}
sort(a.begin(), a.end());
for (ll i=n-1; i>=0; i--)
{
if (m[a[i]])divisors(a[i]);
}
cout<<mp.size()<<endl;
for (auto i : mp)
{
cout<<i.second.size()<<" ";
for (auto j : i.second)
{
cout<<j<<" ";
}
cout<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBubCAiXG4iCiNkZWZpbmUgT08gMHgzZjNmM2YzZgpjb25zdCBsbCBkeFtdID0gezAsIDAsIDEsIC0xLCAtMSwgLTEsIDEsIDF9Owpjb25zdCBsbCBkeVtdID0gezEsIC0xLCAwLCAwLCAxLCAtMSwgMSwgLTF9Owpjb25zdCBsbCBkaXJbXSA9IHswLCAxLCAyLCAzfTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCB0YTJ0bzJhKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksIGNvdXQudGllKG51bGxwdHIpLCBjaW4udGllKG51bGxwdHIpOwogICAgaWYgKGZvcGVuKCJpbnB1dC50eHQiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICB9Cn0KbWFwPGxsLGxsPm07Cm1hcDxsbCx2ZWN0b3I8bGw+Pm1wOwp2b2lkIGRpdmlzb3JzKGxsIG4pCnsKICAgIGZvciAobGwgaT0xOyBpKmk8PW47IGkrKykKICAgIHsKICAgICAgICB3aGlsZSAobiVpPT0wICYmIG1baV0pCiAgICAgICAgewogICAgICAgICAgICBtcFtuXS5wdXNoX2JhY2soaSk7CiAgICAgICAgICAgIG1baV0tLTsKICAgICAgICB9CiAgICAgICAgd2hpbGUgKG1bbi9pXSAmJiBuJWk9PTApCiAgICAgICAgewogICAgICAgICAgICBtcFtuXS5wdXNoX2JhY2sobi9pKTsKICAgICAgICAgICAgbVtuL2ldLS07CiAgICAgICAgfQogICAgfQp9CmludCBtYWluKCkKewogICAgdGEydG8yYSgpOwogICAgbGwgbjsKICAgIGNpbiA+PiBuOwogICAgdmVjdG9yPGxsPiBhKG4pOwogICAgZm9yIChsbCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBtW2FbaV1dKys7CiAgICB9CiAgICBzb3J0KGEuYmVnaW4oKSwgYS5lbmQoKSk7CiAgICBmb3IgKGxsIGk9bi0xOyBpPj0wOyBpLS0pCiAgICB7CiAgICAgICAgaWYgKG1bYVtpXV0pZGl2aXNvcnMoYVtpXSk7CiAgICB9CiAgICBjb3V0PDxtcC5zaXplKCk8PGVuZGw7CiAgICBmb3IgKGF1dG8gaSA6IG1wKQogICAgewogICAgICAgIGNvdXQ8PGkuc2Vjb25kLnNpemUoKTw8IiAiOwogICAgICAgIGZvciAoYXV0byBqIDogaS5zZWNvbmQpCiAgICAgICAgewogICAgICAgICAgICBjb3V0PDxqPDwiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PGVuZGw7CiAgICB9Cn0=