#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);
	}
}