dp
#include<bits/stdc++.h>
// #define int long long
using namespace std;
// typedef long long ll;
// const int MAXN=100005,mod=998244353,inf=0x3f3f3f3f;
int T,n,last=1;
const int cst[]={6,2,5,5,4,5,6,3,7,6};
const char tonum[]={'0','1','2','3','4','5','6','7','8','9'};
string f[200005];
void subtaskA(){
while(n){
cout<<8;
n-=7;
}
cout<<'\n';
}
void subtaskB(){
if(n==1){
cout<<"-1\n";
return ;
}
cout<<10;
n-=8;
subtaskA();
}
string mins(string x,string y){
if(x==""||x[0]=='-')
return y;
if(y==""||y[0]=='-')
return x;
if(x.size()!=y.size()){
if(x.size()<y.size())
return x;
else
return y;
}
return min(x,y);
}
void solve(){
cin>>n;
if(n%7==0)
return subtaskA();
if((n-1)%7==0)
return subtaskB();
for(int i=last;i<=n;i++){
if(f[i]=="")
continue;
for(int j=0;j<10;j++){
f[i+cst[j]]=mins(f[i+cst[j]],f[i]+tonum[j]);
if(j)
f[i+cst[j]]=mins(f[i+cst[j]],tonum[j]+f[i]);
}
}
last=n+1;
if(f[n]=="")
cout<<"-1\n";
else
cout<<f[n]<<'\n';
}
signed main(){
cin.tie(nullptr)->sync_with_stdio(false);
f[2]="1",f[3]="7",f[4]="4",f[5]="2",f[6]="6",f[7]="8";
cin>>T;
while(T--)
solve();
return 0;
}