#include<bits/stdc++.h>
using namespace std;
int q,ryears,rmouth,rday;
long long r[100010];
int mouth[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
//freopen(julian.in,'r',stdin);
//freopen(julian.out,'w',stdout);
scanf("%d",&q);
for(int i = 0;i < q;i++){
scanf("%lld",&r[i]);
}
for(int i = 0;i < q;i++){
ryears = -4713,rmouth = 1,rday = 1;
if(r[i] > 2299160){
ryears = 1582,rmouth = 10,rday = 15;
r[i] -= 2299161;
}
while(r[i] >= 366){
if(ryears > 0){
if(ryears > 1582){
if(!(ryears % 4 == 0 && (ryears % 400 == 0 || ryears % 100 != 0))){
ryears++;
r[i] -= 365;
}
else{
ryears++;
r[i] -= 366;
}
}
else{
if(!(ryears % 4 == 0)){
ryears++;
r[i] -= 365;
}
else{
ryears++;
r[i] -= 366;
}
}
}
else{
if(!(-ryears % 4 == 1)){
ryears++;
r[i] -= 365;
}
else{
if(ryears != -1) ryears++;
else ryears += 2;
r[i] -= 366;
}
}
}
if(r[i] == 365){
if(ryears > 0){
if(!(ryears % 4 == 0 && (ryears % 400 == 0 || ryears % 100 != 0))){
cout << rday << " " << rmouth << " " << ryears + 1 << endl;
continue;
}
}
else if(!(-ryears % 4 == 1)){
cout << rday << " " << rmouth << " " << -(ryears + 1) << " BC" << endl;
continue;
}
}
while(r[i] >= mouth[rmouth]){
r[i] -= mouth[rmouth];
if(rmouth == 2){
if(ryears > 0){
if((ryears % 4 == 0 && (ryears % 400 == 0 || ryears % 100 != 0))){
r[i]--;
}
}
else if((-ryears % 4 == 1)){
r[i]--;
}
}
if(rmouth == 12) {
rmouth = 0;
ryears++;
}
rmouth++;
}
rday += r[i];
if(rday > mouth[rmouth]){
if(rmouth == 2){
if((ryears % 4 == 0 && (ryears % 400 == 0 || ryears % 100 != 0))){
if(rday == 29){
rday += 31;
rmouth--;
}
}
}
rday -= mouth[rmouth];
rmouth++;
if(rmouth >= 12){
rmouth -=12;
ryears++;
}
}
if(ryears > 0){
cout << rday << " " << rmouth << " " << ryears << endl;
}
else {
cout << rday << " " << rmouth << " " << -(ryears) << " BC" << endl;
}
}
return 0;
}
大佬求调