#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
inline long long read(){
long long x = 0,fl = 0;char ch = getchar();
while(ch < '0'||ch > '9'){if(ch == '-')fl = 1;ch = getchar();}
while(ch >= '0'&&ch <= '9'){x = (x<<1)+(x<<3)+(ch^48);ch = getchar();}
return fl ? -x : x;
}
const long long N = 4e6;
long long sum[N],top;
long long month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(long long n){
if(n <= 1582){
if(n%4==0)return 1;
return 0;
}
else{
if(n%100)return (n%4?0:1);
else return (n%400?0:1);
}
return 0;
}
void init(){
long long n = 1e9,i;
for(i = 1; sum[i-1]<=n; i++){
if(i <= 4713){
if((4714-i-1)%4==0)sum[i] = sum[i-1] + 366;
else sum[i] = sum[i-1] + 365;
}
else {
if(i-4713==1582)sum[i] = sum[i-1] + 355;
else{
if(check(i-4713))sum[i] = sum[i-1] + 366;
else sum[i] = sum[i-1] + 365;
}
}
}
top = --i;
}
int main(){
init();
long long T= read();
for(long long o = 1; o <= T; o++){
long long flag = 0;
long long flagrun = 0;
long long day = read();
day++;
long long l = 1,r = top;
long long year;
r = lower_bound(sum+1,sum+1+top,day)-sum;
l = r-1;
if(r <= 4713){
year = 4714-r;
flag = 1;
if((year-1)%4==0)flagrun = 1;
}
else {
year = r-4713;
if(check(year))flagrun = 1;
}
if(flagrun)month[2]++;
if(year==1582&&flag==0)month[10]-=10;
day-=sum[l];
long long mon = 1;
for(; day>0; mon++)
day -= month[mon];
mon--;
day += month[mon];
long long Day = 0;
for(Day = 0; day;){
day--;
Day++;
if(Day == 5&&year == 1582 && flag == 0 && mon == 10)
Day = 15;
}
if(flag) printf("%lld %lld %lld BC\n",Day,mon,year);
else printf("%lld %lld %lld\n",Day,mon,year);
if(flagrun)month[2]--;
if(year==1582&&flag==0)month[10]+=10;
}
return 0;
}