#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int a[48000]={1,4};
int hh[11][48000],l=1,m;
struct kkk{
int number;int n;
};
bool cm(kkk x,kkk y)
{
return x.n<y.n;
}
kkk k[20];
void chu(int u)
{
for(int i=0;i<=a[0];++i)
{
hh[k[l].number][i]=a[i];
}
hh[k[l].number][1]-=u%2+1;
if(hh[k[l].number][1]<0)
{
hh[k[l].number][1]+=10;
--hh[k[l].number][2];
if(hh[k[l].number][2]<0)
{
hh[k[l].number][2]+=10;
--hh[k[l].number][3];
}
}
for(int i=hh[k[l].number][0];i>=2;--i)
{
hh[k[l].number][i-1]+=(hh[k[l].number][i]%3)*10;
hh[k[l].number][i]/=3;
}
hh[k[l].number][1]/=3;
if(hh[k[l].number][hh[k[l].number][0]]==0)--hh[k[l].number][0];
}
void work(int u)
{
while(l<=m)
{
++u;
for(int i=1;i<=a[0];++i)
{
a[i]+=a[i];
}
for(int i=1;i<=a[0];++i)
{
if(a[i]>=10)
{
a[i+1]+=a[i]/10;
a[i]%=10;
if(a[0]==i)
++a[0];
}
}
if(k[l].n==u-1)
{
chu(u);
++l;
}
}
}
int main()
{
cin>>m;
for(int i=1;i<=m;++i)
{
cin>>k[i].n;
k[i].number=i;
}
sort(k+1,k+1+m,cm);
if(k[l].n==1)
{
hh[k[l].number][0]=1;
hh[k[l].number][1]=1;
++l;
}
if(k[l].n==2)
{
hh[k[l].number][0]=1;
hh[k[l].number][1]=2;
++l;
}
work(2);
for(int i=1;i<=m;++i)
{
for(int j=hh[i][0];j>=1;--j)
{
printf("%d",hh[i][j]);
}
cout<<endl;
}
return 0;
}