#define int long long
//平年 +闰年=1461//公历:每一百年为36524;每四百年为146097;
using namespace std;
int q,month1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},month2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
inline int read(){
int f=1,x=0;char ch=getchar();
while (ch<'0'||ch>'9'){f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();} return f*x;
}
bool leap1(int x){if(x%4==0&&x%100!=0||x%400==0) return 1;return 0;}
bool leap2(int x){if(x%4==0) return 1;return 0;}
int x,xx,y,xxx;
void Gre1(){
int ss=0;
for(int i=1;i<=12;i++){
ss+=month2[i];
if(ss>x) {printf("%d %d %d BC\n",x-ss+month2[i]+1,i,4713-y);return;}
}
}
void Gre2(){
int ss=0;
for(int i=1;i<=12;i++){
ss+=month1[i];
if(ss>x) {printf("%d %d %d BC\n",1+x-ss+month1[i],i,4713-y);return;}
}
}
void Gre3(){
int ss=0;
for(int i=1;i<=12;i++){
ss+=month2[i];
if(ss>xxx) {printf("%d %d %d\n",xxx-ss+month2[i],i,y+1);return;}
}
}
void Gre4(){
int ss=0;
for(int i=1;i<=12;i++){
ss+=month1[i];
if(ss>xxx) {printf("%d %d %d\n",xxx-ss+month1[i],i,y+1);return;}
}
}
void work(int a){
x=a%1461,y+=a/1461*4;//年数
if(x<=366) {Gre1();}
else{y+=(x-366)/365+1;x=(x-366)%365;Gre2();}
}
void work1(int a){
xxx=a%1461,y+=a/1461*4;//年数
if(xxx<=366) {Gre3();}
else{y+=(xxx-366)/365+1;xxx=(xxx-366)%365;Gre4();}
}
signed main (){// 4712
//freopen("data.in","r",stdin);
//freopen("qwq.txt","w",stdout);
q=read();
while (q--){
xxx=x=y=0;
int xx=read();
if(xx<=1721424){ work(xx);}
else{
int xxx;
xx=xx-1721424;
y+=xx/146097*400,xxx=xx%146097;
y+=xxx/36524*100,xxx=xxx%36524;
work1(xxx);
}
}
return 0;
}