#include <bits/stdc++.h>
using namespace std;
struct batman
{
long long so;
long long vt;
};
batman a[2005];
long long d[2005];
long long kq=1,n;
bool aaaa(batman l,batman r)
{
return l.so<r.so;
}
void nhap()
{
ifstream fi("SUBSET.INP");
fi>>n;
for (int i=1;i<=n;i++)
{
fi>>a[i].so;
a[i].vt=i;
d[i]=1;
}
sort(a+1,a+1+n,aaaa);
}
void xuly()
{
for (int i=1;i<=n;i++)
{
long long best=0;
for (int j=1;j<=i-1;j++)
{
if(a[i].so%a[j].so==0 && d[j]>best)
{
best=d[j];
}
d[i]=best+1;
}
kq=max(kq,d[i]);
}
}
void ghi()
{
ofstream fo("SUBSET.OUT");
fo<<kq<<endl;
for(int i=kq;i>=1;i--)
{
for(int j=1;j<=n;j++)
{
if (d[j]==i)
fo<<a[j].vt<<" ";
}
fo<<endl;
}
}
int main()
{
nhap();
xuly();
ghi();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgYmF0bWFuCnsKICAgIGxvbmcgbG9uZyBzbzsKICAgIGxvbmcgbG9uZyB2dDsKfTsKYmF0bWFuIGFbMjAwNV07CmxvbmcgbG9uZyBkWzIwMDVdOwpsb25nIGxvbmcga3E9MSxuOwpib29sIGFhYWEoYmF0bWFuIGwsYmF0bWFuIHIpCnsKICAgIHJldHVybiBsLnNvPHIuc287Cn0Kdm9pZCBuaGFwKCkKewogICAgaWZzdHJlYW0gZmkoIlNVQlNFVC5JTlAiKTsKICAgIGZpPj5uOwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGZpPj5hW2ldLnNvOwogICAgICAgIGFbaV0udnQ9aTsKICAgICAgICBkW2ldPTE7CiAgICB9CiAgICBzb3J0KGErMSxhKzErbixhYWFhKTsKfQp2b2lkIHh1bHkoKQp7CiAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgbG9uZyBsb25nIGJlc3Q9MDsKICAgICAgICBmb3IgKGludCBqPTE7ajw9aS0xO2orKykKICAgIHsKICAgICAgICBpZihhW2ldLnNvJWFbal0uc289PTAgJiYgZFtqXT5iZXN0KQogICAgICAgIHsKICAgICAgICAgICAgYmVzdD1kW2pdOwogICAgICAgIH0KICAgICAgICBkW2ldPWJlc3QrMTsKICAgIH0KICAgIGtxPW1heChrcSxkW2ldKTsKICAgIH0KCn0Kdm9pZCBnaGkoKQp7CiAgICBvZnN0cmVhbSBmbygiU1VCU0VULk9VVCIpOwogICAgZm88PGtxPDxlbmRsOwogICAgZm9yKGludCBpPWtxO2k+PTE7aS0tKQogICAgewogICAgICAgIGZvcihpbnQgaj0xO2o8PW47aisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGRbal09PWkpCiAgICAgICAgICAgIGZvPDxhW2pdLnZ0PDwiICI7CiAgICAgICAgfQogICAgICAgIGZvPDxlbmRsOwogICAgfQp9CmludCBtYWluKCkKewogICAgbmhhcCgpOwogICAgeHVseSgpOwogICAgZ2hpKCk7Cn0K