#include <iostream>
using namespace std;
#define int long long
int sty=-4713,stm=1,stday=1;
int csc_year_j=365*4+1;
int year_j[5]={0,366,365,365,365};
int csc_year_g=365*400+100-3;
int a[20]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int b[20]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int get_y_j(int x)
{
int t1=x/csc_year_j;
t1*=4;
int t2=x%csc_year_j;
for(int i=1;i<=4;i++)
{
if(t2>=year_j[i])
{
t1++;
t2-=year_j[i];
}
else
break;
}
if(t1+sty>=0)
t1++;
return t1;
}
int get_m_j(int x)
{
int tmp=get_y_j(x);
if(tmp+sty>=0)
tmp++;
int t=x%csc_year_j;
for(int i=1;i<=4;i++)
{
if(t>=year_j[i])
t-=year_j[i];
else
break;
}
int ans=0;
if(tmp%4==0)
for(int i=1;i<=12;i++)
{
if(t>=b[i])
ans++,t-=b[i];
else
break;
}
else
for(int i=1;i<=12;i++)
{
if(t>=a[i])
ans++,t-=a[i];
else
break;
}
return ans;
}
int get_d_j(int x)
{
int tmp=get_y_j(x);
if(tmp+sty>=0)
tmp++;
int t=x%csc_year_j;
for(int i=1;i<=4;i++)
{
if(t>=year_j[i])
t-=year_j[i];
else
break;
}
if(tmp%4==0)
for(int i=1;i<=12;i++)
{
if(t>=b[i])
t-=b[i];
else
break;
}
else
for(int i=1;i<=12;i++)
{
if(t>=a[i])
t-=a[i];
else
break;
}
return t;
}
bool is_leap_year(int x)
{
if(x%4==0&&x%100!=0)
return 1;
if(x%400==0)
return 1;
return 0;
}
int get_y_g(int x)
{
int t1=x/csc_year_g*400;
x%=csc_year_g;
for(int i=0;i<400;i++)
{
int tmp=365;
if(is_leap_year(i+1583)) tmp++;
if(x>=tmp)
{
t1++;
x-=tmp;
}
}
return t1;
}
int get_m_g(int x)
{
int t1=x/csc_year_g*400;
x%=csc_year_g;
for(int i=0;i<400;i++)
{
int tmp=365;
if(is_leap_year(i+1583)) tmp++;
if(x>=tmp)
{
t1++;
x-=tmp;
}
}
int t2=0;
if(is_leap_year(t1+sty))
{
for(int i=1;i<=12;i++)
if(x>=b[i])
{
x-=b[i];
t2++;
}
else
break;
}
else
{
for(int i=1;i<=12;i++)
if(x>=a[i])
{
x-=a[i];
t2++;
}
else
break;
}
return t2;
}
int get_d_g(int x)
{
int t1=x/csc_year_g*400;
x%=csc_year_g;
for(int i=0;i<400;i++)
{
int tmp=365;
if(is_leap_year(i+1583)) tmp++;
if(x>=tmp)
{
t1++;
x-=tmp;
}
}
if(is_leap_year(t1+1583))
{
for(int i=1;i<=12;i++)
if(x>=b[i])
x-=b[i];
else
break;
}
else
{
for(int i=1;i<=12;i++)
if(x>=a[i])
x-=a[i];
else
break;
}
return x;
}
signed main()
{
ios::sync_with_stdio(false);
int Q;
cin>>Q;
int x;
while(Q--)
{
cin>>x;
sty=-4713,stm=1,stday=1;
int t1=get_d_j(x),t2=get_m_j(x),t3=get_y_j(x);
int tmp=sty+t3;
if(tmp<0)
{
cout<<stday+t1<<" "<<stm+t2<<" "<<-(sty+t3)<<" BC"<<endl;
continue;
}
if(tmp<1582||(tmp==1582&&stm+t2<10)||(tmp==1582&&stm+t2==10&&stday+t1<=4))
{
cout<<stday+t1<<" "<<stm+t2<<" "<<tmp<<endl;
continue;
}
sty=1582,stm=10,stday=15;
x-=2299162;
int least=16+30+31;
if(x<=least)
{
int ans1,ans2,ans3;
ans1=sty,ans2=stm,ans3=stday;
for(int i=1;i<=x;i++)
{
ans3++;
if(ans3>a[ans2])
{
ans2++;
ans3=1;
}
if(ans2>12)
{
ans1++;
ans2=1;
}
}
cout<<ans3<<" "<<ans2<<" "<<ans1<<endl;
continue;
}
x-=least;
sty=1583,stm=1,stday=1;
t1=get_d_g(x),t2=get_m_g(x),t3=get_y_g(x);
cout<<stday+t1<<" "<<stm+t2<<" "<<sty+t3<<endl;
}
return 0;
}