#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int _400 = 146097;
const int _4 = 1461;
ll r;
int t;
const int mon[2][13]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
bool is_qian;
int d,m;
ll y;
void d1(ll r){
is_qian = 1;
y = 4713;
int year_ = r / _4;
y = y-year_*4;
r = r - year_*_4;
while(1){
if((y-1)%4==0){
if(r>=366){
r -= 366;
--y;
}
else break;
}
else{
if(r>=365){
r -= 365;
--y;
}
else break;
}
}
int monuse;
if((y-1)%4==0)monuse = 1;
else monuse = 0;
while(1){
if(r>=mon[monuse][m - 1]){
r -= mon[monuse][m - 1];
m++;
}
else break;
}
d += r;
}
void d2(ll r){
is_qian = 0;
y = 1;
int year_ = r / _4;
y = y + year_*4;
r = r - year_*_4;
while(1){
if(y%4==0){
if(r>=366){
r -= 366;
++y;
}
else break;
}
else{
if(r>=365){
r -= 365;
++y;
}
else break;
}
}
int monuse;
if(y%4==0)monuse = 1;
else monuse = 0;
while(1){
if(r>=mon[monuse][m - 1]){
r -= mon[monuse][m - 1];
m++;
}
else break;
}
d += r;
}
void d3(ll r){
is_qian = 0;
y = 1582;
if(r<=78){
if(r<=16){
m=10;d=15+r;return;
}
if(r>16&&r<=46){
m=11;d=r-16;return;
}
if(r>46){
m=12;d=r-46;return;
}
}
y = 1583;m = 1;d = 1;r -= 78;
int year_ = r / _400;
y = y + year_*400;
r = r - year_*_400;
while(1){
if((y%4==0&&y%100!=0)||y%400==0){
if(r>=366){
r -= 366;
++y;
}
else break;
}
else{
if(r>=365){
r -= 365;
++y;
}
else break;
}
}
int monuse;
if((y%4==0&&y%100!=0)||y%400==0)monuse = 1;
else monuse = 0;
while(1){
if(r>=mon[monuse][m - 1]){
r -= mon[monuse][m - 1];
m++;
}
else break;
}
d += r;
}
void work(){
y = 0;d = 1;m = 1;
scanf("%lld",&r);
if(r<=1721423) d1(r);
if(r>1721423&&r<=1721423+577460+277) d2(r-1721423-1);
if(r>1721423+577460+277) d3(r-1721423-577460-277-1);
if(is_qian)printf("%d %d %lld BC\n",d,m,y);
else printf("%d %d %lld\n",d,m,y);
}
int main(){
scanf("%d",&t);
while(t--)work();
return 0;
}