#include <iostream>
#include <cmath>
using namespace std;
const int N = 1e5 + 5;
int q, r[N];
int cury = -4713, curm = 1, curd = 1, cmdays;
bool curleap, isbc = true, cbc[N];
int couter[N][3], s = 0;
void updateleap(){
if((cury == 1582 && curm == 10 && curd >= 15) || (cury == 1582 && curm > 10) || cury > 1582){
if(cury % 400 == 0 || (cury % 4 == 0 && cury % 100 != 0)){
curleap = true;
}
else{
curleap = false;
}
}
else if((cury == 1582 && curm == 10 && curd <= 4) || (cury == 1582 && curm < 10) || cury < 1582){
if(cury % 4 == 0){
curleap = true;
}
else{
curleap = false;
}
}
return ;
}
void updatecmdays(){
if(curm == 2){
if(curleap){
cmdays = 29;
}
else{
cmdays = 28;
}
}
else{
if(curm <= 7){
if(curm % 2 == 0){
cmdays = 30;
}
else{
cmdays = 31;
}
}
else{
if(curm % 2 == 0){
cmdays = 31;
}
else{
cmdays = 30;
}
}
}
return ;
}
void updatebc(){
if(cury < 0){
isbc = true;
}
else if(cury > 0){
isbc = false;
}
return ;
}
void addtime(int day){
int x = day;
updateleap();
updatecmdays();
updatebc();
while(x > 0){
cnt++;
curd++;
if(cury == 1582 && curm == 10 && curd == 5){
curd = 15;
}
if(curd > cmdays){
curd = 1;
curm++;
updatecmdays();
if(curm == 13){
curm = 1;
cury++;
if(cury == 0){
cury = 1;
}
updatecmdays();
updateleap();
updatebc();
}
}
x--;
}
updatebc();
return ;
}
int main()
{
cin >> q;
for(int i = 0;i < q;i++){
cin >> r[i];
}
for(int i = 0;i < q;i++){
addtime(r[i]);
couter[s][0] = curd;
couter[s][1] = curm;
couter[s][2] = fabs(cury);
cbc[s] = isbc;
cury = -4713;
curm = 1;
curd = 1;
s++;
}
for(int i = 0;i < s;i++){
cout << couter[i][0] << " " << couter[i][1] << " " << couter[i][2];
if(cbc[i]){
cout << " BC";
if(i < s - 1){
cout << endl;
}
}
else{
if(i < s - 1){
cout << endl;
}
}
}
return 0;
}