#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
int T, mon[15] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
signed main() {
//freopen("julian3.in","r",stdin);
//freopen("1.out","w",stdout);
cin >> T;
while (T--) {
int r, tian = 1, nian, pd = 0, cnt = 0, yue = 1;
cin >> r;
if (r <= 1721423) {
tian += r % 1461;
nian = r / 1461 * 4;
for (int i = 1; i <= 4; i++) {
int bj = 365;
if (i == 1)bj = 366;
if (tian < bj)break;
else {
tian -= bj;
nian++;
cnt++;
}
}
if (cnt == 0)pd = 1;
if (pd == 1)mon[2] = 29;
else mon[2] = 28;
for (int i = 1; i <= 12; i++) {
if (tian >= mon[i]) {
tian -= mon[i];
yue++;
if (yue == 13)yue = 1, nian++;
} else {
cout << tian << " " << yue << " " << 4713 - nian << " BC" << endl;
break;
}
}
} else {
tian = r - 1721423;
nian = 1;
if (tian <= 577737) {
nian += tian / 1461 * 4;
tian %= 1461;
for (int i = 1; i <= 4; i++) {
int bj = 365;
if (i == 4)bj = 366;
if (tian < bj)break;
else {
tian -= bj;
nian++;
cnt++;
}
}
if (cnt == 3)pd = 1;
if (pd == 1)mon[2] = 29;
else mon[2] = 28;
for (int i = 1; i <= 12; i++) {
if (tian > mon[i]) {
tian -= mon[i];
yue++;
if (yue == 13)yue = 1, nian++;
} else {
cout << tian << " " << yue << " " << nian << endl;
break;
}
}
} else {
nian = 1582;
tian = 15, yue = 10;
r -= (577737 + 1721423);
if (r <= 78) {
for (int i = 1; i <= 12; i++) {
if (tian > mon[i]) {
tian -= mon[i];
yue++;
if (yue == 13)yue = 1, nian++;
} else {
cout << tian << " " << yue << " " << nian << endl;
break;
}
}
} else {
int pdd = 0;
r -= 78;
yue = 1, tian = 1;
nian = r / 146097 * 400 + 1583;
r %= 146097;
//cout << nian << endl;
for (int i = 1583; i <= 1983; i++) {
int dq;
if (i % 400 == 0)dq = 366;
else if (i % 100 == 0)dq = 365;
else if (i % 4 == 0)dq = 366;
else dq = 365;
if (r >= dq) {
r -= dq;
nian++;
} else {
if (dq == 366)pdd = 1;
else pdd = 0;
}
}
//cout<<nian<<endl;
if (pdd == 1)mon[2] = 29;
else mon[2] = 28;
for (int i = 1; i <= 12; i++) {
if (r > mon[i]) {
r -= mon[i];
yue++;
if (yue == 13)yue = 1, nian++;
} else {
cout << r << " " << yue << " " << nian << endl;
break;
}
}
}
}
}
}
return 0;
}