#include <bits/stdc++.h>
using namespace std;
const int BC = 4713*365+4712/4, AC = BC+1581*365+1580/4+278, FY = 365*4+1,CY=FY*25,TY=FY*250;
const int MY=FY*2500;
int q, r;
int n1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int n2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int main(){
scanf("%d",&q);
//freopen("julian.ans","w",stdout);
while(q--){
scanf("%d",&r);
if(r<=BC){
int y=4713, m=1, d=1;
while(r-FY>0){
y-=4;
r-=FY;
}
while(r-365>0){
if(y%4==1&&r-366>0){
r-=366;
y-=1;
}
else if(y%4==1&&r-366<=0){
break;
}
else{
r-=365;
y-=1;
}
}
if(y%4==1){
while(r-n2[m]>0){
r-=n2[m];
m++;
}
d+=r;
if(d>n2[m])d-=n2[m],m++;
if(m>12) m-=12,y++;
printf("%d %d %d BC\n",d,m,y);
}
else{
while(r-n1[m]>0){
r-=n1[m];
m++;
}
d+=r;
if(d>n1[m])d-=n1[m],m++;
if(m>12)m-=12,y++;
printf("%d %d %d BC\n",d,m,y);
}
}
else if(r<AC){
r-=BC;
int y=1, m=1, d=0;
while(r-MY>0){
y+=10000;
r-=MY;
}
while(r-TY>0){
y+=1000;
r-=TY;
}
while(r-CY>0){
y+=100;
r-=CY;
}
while(r-FY>0){
y+=4;
r-=FY;
}
while(r-365>0){
if(y%4==0&&r-366>0){
r-=366;
y+=1;
}
else if(y%4==0&&r-366<=0){
break;
}
else{
r-=365;
y+=1;
}
}
if(y%4==0){
while(r-n2[m]>0){
r-=n2[m];
m++;
}
d+=r;
if(d>n2[m])d-=n2[m],m++;
printf("%d %d %d\n",d,m,y);
}
else{
while(r-n1[m]>0){
r-=n1[m];
m++;
}
d+=r;
if(d>n1[m])d-=n1[m],m++;
printf("%d %d %d\n",d,m,y);
}
}
else{
r-=AC;
if(r-16>0)r-=16;
else{
printf("%d %d %d\n",r+15,10,1582);
continue;
}
if(r-30>0)r-=30;
else{
printf("%d %d %d\n",r,11,1582);
continue;
}
if(r-31>0) r-=31;
else{
printf("%d %d %d\n",r,12,1582);
continue;
}
int y=1583, m=1, d=0;
while(r-MY+100-25>0){
y+=10000;
r-=MY-100+25;
}
while(r-TY+10-(y+1000)/400+y/400>0){
y+=1000;
r-=TY-10-(y-1000)/400+y/400;
}
while(r-CY+1-(y+100)/400+y/400>0){
y+=100;
r-=CY-1+y/400-(y-100)/400;
//printf("%d %d\n",r,y);
}
while(r-FY>0){
if(y/100==(y+4)/100||y/400!=(y+4)/400){
r-=FY;
y+=4;
}
else{
r-=FY-1;
y+=4;
}
}
while(r-365>0){
if(y%400==0||(y%100!=0&&y%4==0)&&r-366>0){
r-=366;
y++;
}
else if(y%400==0||(y%100!=0&&y%4==0)&&r-366<=0){
break;
}
else{
r-=365;
y++;
}
}
if((y%4==0&&y%100!=0)||y%400==0){
while(r+d-n2[m]>0){
r-=n2[m];
m++;
}
d+=r;
printf("%d %d %d\n",d,m,y);
}
else{
while(r+d-n1[m]>0){
r-=n1[m];
m++;
}
d+=r;
printf("%d %d %d\n",d,m,y);
}
}
}
return 0;
}