#include<bits/stdc++.h>
using namespace std;
long long q;
long long day[10000001];
long long month[1000001];
long long year[1000001];
long long check(long long mon,long long yea)
{
if(mon==2)
{
if(yea%4==0&&yea%100!=0) return 29;
if(yea%400==0) return 29;
return 28;
}
if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) return 31;
return 30;
}
void pre()
{
month[0]=day[0]=1;
for(int i=1;i<146097;i++)//400年天数
{
day[i]=day[i-1]+1;
month[i]=month[i-1];
year[i]=year[i-1];
if(day[i]>check(month[i],year[i]))
{
day[i]=1;
month[i]+=1;
}
if(month[i]>12)
{
month[i]=1;
year[i]+=1;
}
}
}
int main()
{
cin>>q;
pre();
for(long long i=1;i<=q;i++)
{
long long k;
cin>>k;
if(k<=2296160)
{
long long ye;
ye=k/1461*4-4712;
k%=1461;
if(ye+year[k]>0) cout<<day[k]<<" "<<month[k]<<" "<<ye+year[k]<<endl;
else cout<<day[k]<<" "<<month[k]<<" "<<1-(ye+year[k])<<" BC"<<endl;
}
else
{
k+=10;
if(k<=2305457)
{
long long te_data=k%1461;
long long te_year=k%1461*4;
int ok=1;
if(te_data>=366)
{
ok=0;
te_data-=365;
te_year+=1;
}
if(te_data>=366)
{
te_data-=365;
te_year+=1;
}
if(te_data>=366)
{
te_data-=365;
te_year+=1;
}
if(ok==1) te_data+=1;
long long sum=0;
long long mon;
for(int i=1;i<=12;i++)
{
if(ok==1)
{
sum+=check(i,4);
if(sum>=te_data)
{
mon=i;
te_data-=sum-check(i,4);
}
}
else sum+=check(i,1);
if(sum>=te_data)
{
mon=i;
te_data-=sum-check(i,4);
}
}
cout<<te_data<<" "<<mon<<" "<<year<<endl;
}//1582-1600前
else
{
k-=2305458;
long long ye=k/146097*400+1600;
k%=146097;
cout<<day[k]<<" "<<month[k]<<" "<<ye+year[k]<<endl;
}
}
}
}