#include <bits/stdc++.h>
using namespace std;
inline bool p_moon(long long n) {
if (n < 0) {
n++;
}
if (n <= 1582) {
return (n % 4 == 0);
}
return ((n % 4 == 0 && n % 100 != 0) || n % 400 == 0);
}
inline long long get_m_d(int yr, int mt) {
if (mt == 10 && yr == 1582) {
return 21;
}
if (mt == 2) {
return p_moon(yr) ? 29 : 28;
}
if (mt == 4 || mt == 6 || mt == 9 || mt == 11) {
return 30;
}
return 31;
}
inline long long get_y_d(int yr) {
if (yr == 1582) {
return 355;
}
return p_moon(yr) ? 366 : 365;
}
constexpr long long four_b_y_d = 365 * 4 + 1, hd_b_y_d = four_b_y_d * 25 - 1, f_hd_b_y_d = hd_b_y_d * 4 + 1;
inline void f_hd_jump(long long& n, int& y, int maxn_year=INT_MAX) {
const int py = min(n / f_hd_b_y_d, static_cast<long long>(maxn_year / 400));
y += py * 400;
n -= py * f_hd_b_y_d;
}
inline void hd_jump(long long& n, int& y, int maxn_year=INT_MAX) {
const int py = min(n / hd_b_y_d, static_cast<long long>(maxn_year / 100));
y += py * 100;
n -= py * hd_b_y_d;
}
inline void four_jump(long long& n, int& y, int maxn_year=INT_MAX) {
const int py = min(n / four_b_y_d, static_cast<long long>(maxn_year / 4));
y += py * 4;
n -= py * four_b_y_d;
}
inline bool year_jump(long long& n, int& y) {
long long d = get_y_d(y);
if (n >= d) {
n -= d;
y++;
if (y == 0) {
y = 1;
}
return true;
}
return false;
}
inline void jump_to_special(long long& n, int& y) {
// fast to 1600
if (n >= 2305448) {
n -= 2305448;
y = 1600;
return;
}
if (n >= 365 * 4 + 1) {
four_jump(n, y, 4713);
while (year_jump(n, y) && y < 1) {}
}
}
inline void special_judge(long long& n, int& y) {
if (y == 1) {
four_jump(n, y, 1580);
while (year_jump(n, y) && y < 1584) {}
if (y == 1584) {
four_jump(n, y, 16);
}
}
if (y == 1600) {
year_jump(n, y);
f_hd_jump(n, y);
hd_jump(n, y, 399);
four_jump(n, y, 99);
}
}
inline void jump_year(long long& n, int& y) {
while (true) {
long long d = get_y_d(y);
if (n < d) {
return;
}
n -= d;
y++;
}
}
inline void jump_month(long long& n, int& y, int& m) {
while (true) {
long long d = get_m_d(y, m);
if (n < d) {
return;
}
n -= d;
m++;
}
}
inline void jump_day(long long& n, int& y, int& m, int& d) {
if (!(y == 1582 && m == 10)) {
d = n + 1;
return;
}
d = n + 11;
}
inline void print(long long y, int m, int d) {
if (y < 0) {
cout << d << ' ' << m << ' ' << -y << " BC\n";
} else {
cout << d << ' ' << m << ' ' << y << "\n";
}
}
inline void sol(long long n) {
int yr = -4713, mt = 1, dy = 1;
jump_to_special(n, yr);
special_judge(n, yr);
jump_year(n, yr);
jump_month(n, yr, mt);
jump_day(n, yr, mt, dy);
print(yr, mt, dy);
}
int main() {
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
int q;
cin >> q;
while (q--) {
long long n;
cin >> n;
sol(n);
}
return 0;
}