#include<iostream>
#include<cstdio>
#include<map>
#include<vector>
using namespace std;
int N,M,a[15];
map<int,vector<int> >multiple;
void creating_subset(int i,int m,int l)
{
if(i>=M)
{
multiple[l].push_back(m);
return;
}
creating_subset(i+1,m*a[i],l+1);
creating_subset(i+1,m,l);
}
int main()
{
cin>>M;
for(int i=0;i<M;i++)
cin>>a[i];
creating_subset(0,1,0);
for(int i=0;i<multiple[3].size();i++)
printf("%d ",multiple[3][i]);
cout<<endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8bWFwPgojaW5jbHVkZTx2ZWN0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBOLE0sYVsxNV07Cm1hcDxpbnQsdmVjdG9yPGludD4gPm11bHRpcGxlOwp2b2lkIGNyZWF0aW5nX3N1YnNldChpbnQgaSxpbnQgbSxpbnQgbCkKewogIGlmKGk+PU0pCiAgewogICAgbXVsdGlwbGVbbF0ucHVzaF9iYWNrKG0pOwogICAgcmV0dXJuOwogIH0KICBjcmVhdGluZ19zdWJzZXQoaSsxLG0qYVtpXSxsKzEpOwogIGNyZWF0aW5nX3N1YnNldChpKzEsbSxsKTsKfQppbnQgbWFpbigpCnsKICBjaW4+Pk07CiAgZm9yKGludCBpPTA7aTxNO2krKykKICBjaW4+PmFbaV07CiAgY3JlYXRpbmdfc3Vic2V0KDAsMSwwKTsKICBmb3IoaW50IGk9MDtpPG11bHRpcGxlWzNdLnNpemUoKTtpKyspCiAgcHJpbnRmKCIlZCAiLG11bHRpcGxlWzNdW2ldKTsKICBjb3V0PDxlbmRsOwogIHJldHVybiAwOwp9Cg==