rendered paste body#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
long long a[200001]={1,3,11,41};
long long val[200001]={1,3,11,41};
int r[200001]={1,1,2,2};
long long x;
long double y,b[200001]={1.,3.,11.,41.};
int lc;
int lcyfr(long long n)
{
int i;
for(i=0;n>0;i++)
n/=10;
return i;
}
int reszta(int n)
{
int i,val=1;
for(i=1;i<=n;i++)
val*=10;
// cout<<"\nn= "<<n<<" val= "<<val<<endl;
return val;
}
void tablicuj()
{
int fix=3;
for(int i=4;i<200001;i++)
{
r[i]=r[i-1];
/*if(i>33)
x=4*a[i-1]-a[i-2]/reszta(r[i-1]-r[i-2]);
else*/
x=4*a[i-1]-a[i-2];
if(i<35)
{
if(8==fix)
{
r[i]++;
fix=1;
}
else
{
if(fix%2)
{
r[i]++;
}
}fix++;
}
else
{
fix=x/1000000000000000000ll;
if(fix>0)
r[i]++;
}
// cout<<"\n"<<x<<endl;
lc=lcyfr(x);
if(lc>10)
{
val[i]=x/reszta(lc-10);
if(x>=1000000000000000000ll)
{
a[i]=x/10;
a[i-1]=a[i-1]/10;
// cout<<"a["<<i<<"]"<<"= "<<a[i]<<endl;
}
else
{
a[i]=x;
}
// cout<<val[i]<<endl;
}
else
{
val[i]=a[i]=x;
// cout<<val[i]<<endl;
}
}
}
void tablicuj2()
{
for(int i=4;i<200001;i++)
{
y=4*b[i-1]-b[i-2];
lc=log10(y)+1;
if(lc>10)
{
val[i]=y/reszta(lc-10);
if(x>=2000000000000000000ll)
{
b[i]=y/10;
b[i-1]=b[i-1]/10;
}
else
{
b[i]=y;
}
}
else
{
val[i]=b[i]=y;
}
}
}
//1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514
int main()
{
int C,F;
tablicuj();
tablicuj2();
// for(int i=30;i<50;i++)
// cout<<r[i]<<' ';
// cout<<endl;
scanf("%d",&C);
while(C--)
{
scanf("%d",&F);
cout<<r[F]<<' '<<val[F]<<endl;
// printf("%d %lld\n",r[F],val[F]);
}
// getchar();
// getchar();
return 0;
}