#include <iostream>
#include <stack>
#include <string>
#include<queue>
#include<vector>
using namespace std;
bool is_runnian(int year) {
return (year % 400 == 0) || year % 4 == 0 && year % 100 != 0;
}
int monthday[2][13] = {
{ 0,31,28,31,30,31,30,31,31,30,31,30,31 },
{ 0,31,29,31,30,31,30,31,31,30,31,30,31 } };
int dayOFyear(int year, int month, int day) {
int leap = is_runnian(year) ? 1 : 0;
int day_year = 0;
for(int i = 1; i < month; i++) {
day_year += monthday[leap][i];
}
return day_year + day;
}
void cout_year_month_day(int year, int daysum) {
int leap = is_runnian(year) ? 1 : 0;
while (daysum >=(365 + leap))
{
daysum =daysum - (365 + leap);
year++;
leap = is_runnian(year) ? 1 : 0;
}int day_result=0;
int day_total=0;
int month_result = 0;
leap = is_runnian(year) ? 1 : 0;
for (int i = 1; i < 13; i++)
{
day_result = daysum - day_total;
day_total += monthday[leap][i];
if (daysum <= day_total) {
month_result = i;
break;
}
}
printf("%04d-%02d-%02d\n", year, month_result, day_result);
}
int main()
{
int m;
int year, month, day, add_day;
cin >> m;
while (cin >> year >> month >> day >>add_day) {
int daysum = dayOFyear(year, month, day) + add_day;
cout_year_month_day(year, daysum);
}
}