#include <iostream>
using namespace std;
// const int STD=1,STM=1,STY=4713;
typedef long long int ll;
const ll MONTH[20]={0,31,28,31,30,31,30,31,31,30,31,30,31};
// inline void print(int _d,int _m,int _y){cout<<_d<<' '<<_m<<' '<<_y<<" BC\n";}
// inline void DEBUG(int _d,int _m,int _y){cout<<"BC "<<_y<<'.'<<_m<<'.'<<_d<<endl;}
// inline void DEBUG2(int _d,int _m,int _y){cout<<_y<<'.'<<_m<<'.'<<_d<<endl;}
// inline bool isr(int _y){return (!(((_y-1)%4)));}
// inline bool isr2(int _y){return !(_y%4);}
inline bool isr3(ll _y){
if(_y<6295)
return !(_y%4);
return ((!((_y-4712)%4))&&(_y-4712)%100)||!((_y-4712)%400);
}
inline bool dt(ll _y,ll _m){
return _m==2&&isr3(_y);
}
// inline void test(){int d=STD,m=STM,y=STY,no=0;while(y>=1){cout<<"#"<<no++<<": ";DEBUG(d,m,y);d++;if(m==2&&isr(y)){if(d==MONTH[m]+2){d=1;m++;}}else{if(d==MONTH[m]+1){d=1;m++;}}if(m==13){m=1;y--;}}}
ll q,r,lt,rt,mid,ansy,ansm,ansd;
inline ll calc(ll _y){
if(_y<6295) // ≤6294: 不经过1582年
return _y*365+(_y+3)/4;
else
if(_y==6295)
return 2299239ll;
else
return 2299239ll+365ll*(_y-6295)+(_y-6293)/4-(_y-6213)/100+(_y-5913)/400;
}
inline void run(){
cin>>r; // 从儒略日过去了多少天
lt=0; // 从儒略日过去了多少年
rt=2e9;
while(lt<rt-1){
mid=(lt+rt)>>1;
if(calc(mid)<=r)
lt=mid;
else
rt=mid;
}
ansy=lt;
r-=calc(lt);
if(ansy-4712==1582){
r-=10;
ansm=1;
while(r>=MONTH[ansm]){
r-=MONTH[ansm];
ansm++;
}
if((ansm>10)||(ansm==10&&r>3)){
r+=10;
while(r>=MONTH[ansm]){
r-=MONTH[ansm];
ansm++;
}
}
}else{
ansm=1;
while(r>=MONTH[ansm]+dt(ansy,ansm)){
r-=MONTH[ansm]+dt(ansy,ansm);
ansm++;
}
}
if(lt<4713){
cout<<r+1<<' '<<ansm<<' '<<4713-ansy<<" BC\n";
}else{
cout<<r+1<<' '<<ansm<<' '<<ansy-4712<<endl;
}
}
int main(int argc, char const *argv[])
{
ios::sync_with_stdio(false);
// freopen("/Users/WHAT_ARE_YOU_LOOKING_AT/Downloads/julian/julian3.in","r",stdin);
// freopen("/Users/WHAT_ARE_YOU_LOOKING_AT/Downloads/julian/julian3.out","w",stdout);
cin>>q;
while(q--)
run();
return 0;
}