using namespace std; class Date { friend istream& operator>>(istream& cin, Date& d); private: int _year; int _month; int _day; public: Date(int year = 1200, int month = 1, int day = 1) :_year(year), _month(month), _day(day) { } static int GetMonthDay(int year, int month) { static int dayArr[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if((month == 2) && (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))) { return 29; } else { return dayArr[month]; } } Date& operator+=(const int day) { _day += day; while(_day > GetMonthDay(_year, _month)) { _day -= GetMonthDay(_year, _month); ++_month; if(_month > 12) { ++_year; _month = 1; } } return *this; } void Print() const { printf("%04d-%02d-%02d\n", _year, _month, _day); } }; istream& operator>>(istream& cin, Date& d) { cin >> d._year >> d._month >> d._day; return cin; } int main() { int n = 0; cin >> n; while(n--) { Date d; int day = 0; cin >> d >> day; d += day; d.Print(); } return 0; }