#include<iostream>
#include<vector>
#include<cstring>
#define pb push_back
using namespace std;
int a;
int o;
vector< int > v;
void out()
{
for (int i = 0; i < v.size(); i++)
{
cout << v[i] << " ";
}
cout << endl;
}
bool check(int k)
{
int p = 0;
bool mm[10] = { 0 };
if (k != -1)
{
while (k != 0 && k != -1)
{
if (mm[k % 10])continue;
mm[k % 10] = 1;
p += (1 << (k % 10));
k /= 10;
}
if ((k | o) == o) return 1;
}
else
{
for (int i = 0; i < v.size(); i++)
{
if (mm[v[i]])continue;
mm[v[i]] = 1;
p += (1 << (v[i]));
}
if (p == o)return 1;
}
return 0;
}
void make(int x, int y, int z)
{
if (x >= 100)
{
v.pb(x / 100);
v.pb(x % 100 / 10);
v.pb(x % 10);
}
else if (x >= 10 && x <= 99)
{
v.pb(x / 10);
v.pb(x % 10);
}
else
{
v.pb(x);
}
if (x >= 100)
{
v.pb(y / 100);
v.pb(y % 100 / 10);
v.pb(y % 10);
}
else if (x >= 10 && x <= 99)
{
v.pb(y / 10);
v.pb(y % 10);
}
else
{
v.pb(y);
}
if (x >= 100)
{
v.pb(z / 100);
v.pb(z % 100 / 10);
v.pb(z % 10);
}
else if (x >= 10 && x <= 99)
{
v.pb(z / 10);
v.pb(z % 10);
}
else
{
v.pb(z);
}
out();
}
void huiwen(int ii, int jj, int kk)
{
int s = v.size();
bool flag = 1;
v.pb(v[0]);
for (int i = 0; i < v.size(); i++)
{
if (v[i] != v[s - i - 1])flag = 0;
}
if (flag == 1)cout << ii << "." << jj << "." << kk << "." << v[0] << endl;
v.pop_back();
v.pb(v[1]);
v.pb(v[0]);
for (int i = 0; i < v.size(); i++)
{
if (v[i] != v[s - i - 1])flag = 0;
}
if (flag == 1 && check(-1))cout << ii << "." << jj << "." << kk << "." << v[1] << v[0] << endl;
v.pop_back();
v.pop_back();
v.pop_back();
flag = 1;
v.pb(v[2]);
v.pb(v[1]);
v.pb(v[0]);
for (int i = 0; i < v.size(); i++)
{
if (v[i] != v[s - i - 1])flag = 0;
}
if (flag == 1 && check(-1))cout << ii << "." << jj << "." << kk << "." << v[2] << v[1] << v[0] << endl;
v.pop_back();
v.pop_back();
v.pop_back();
}
int main()
{
cin >> a;
for (int i = 0; i < a; i++)
{
int temp;
cin >> temp;
o += (1 << temp);
}
for (int i = 0; i < 256; i++)
{
if (!check(i))continue;
for (int j = 0; j < 256; j++)
{
if (!check(j))continue;
for (int k = 0; k < 256; k++)
{
if (!check(k))continue;
v.clear();
make(i, j, k);
huiwen(i, j, k);
}
}
}
}
额,好讲不对