#include<bits/stdc++.h>
using namespace std;
int t,maxn=INT_MIN;
int qu[100],st[11]={6,2,5,5,4,5,6,3,7,6};
string dp[1000001];
string _min(string a,string b){
if(a=="Z") return b;
if(b=="Z") return a;
if(a.size()!=b.size()) {
if(a.size()<b.size()) return a;
else return b;
}
else {
if(a>b) return b;
else return a;
}
}
int main(){
cin>>t;
int flag7=0,flag8=0;
for(int i=1;i<=t;i++){
cin>>qu[i];
maxn=max(maxn,qu[i]);
if(qu[i]%7==0) flag7++;
if(qu[i]%7==1) flag8++;
}
if(flag7==t||flag8==t){
if(flag7==t) {
for(int i=1;i<=t;i++) {
for(int j=1;j<=qu[i]/7;j++) cout<<8;
cout<<endl;
}
return 0;
}
else {
for(int i=1;i<=t;i++) {
cout<<10;
for(int j=1;j<qu[i]/7;j++) cout<<8;
cout<<endl;
}
return 0;
}
}
for(int i=1;i<=maxn;i++) dp[i]="Z";
dp[2]="1";
dp[3]="7";
dp[6]="6";
dp[4]="4";
dp[5]="2";
dp[7]="8";
for(int i=0;i<10;i++){
for(int j=st[i];j<=maxn;j++) {
if(j-st[i]<2) continue;
dp[j]=_min(dp[j-st[i]]+char(i+'0'),dp[j]);
}
}
for(int i=1;i<=t;i++) {
if(qu[i]<2) cout<<-1<<endl;
else
cout<<dp[qu[i]]<<endl;
}
return 0;
}