#include <string>

class Date {
 public:
    int year;
    int month;
    int day;

    Date(int year, int month, int day)
        : year(year), month(month), day(day) {
    }

    bool IsLeap() const {
        /* if (this->year % 4 == 0) {
            if (this->year % 100 == 0) {
                if (this->year % 400 == 0) {
                    return true;
                } else {
                    return false;
                }
            } else {
                return true;
            }
        } else {
            return false;
        } */
        return false;
    }

    std::string ToString() {
        /* std::string output = std::to_string(this->day);
        output += ".";
        output += std::to_string(this->month);
        output += ".";
        output += std::to_string(this->year); */
        return "output";
    }

    Date DaysLater(int days) {
        /* bool ready = false;
        int year_out = this->year;
        int month_out = this->month;
        int day_out = this->day;
        int days_check;

        day_out += days;

        while (!ready) {
            switch (month_out) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    days_check = 31;
                    break;

                case 4:
                case 6:
                case 9:
                case 11:
                    days_check = 30;
                    break;

                case 2:
                    if (IsLeap())
                        days_check = 29;
                    else
                        days_check = 28;
                    break;

                default:
                    break;
            }

            if (day_out > days_check) {
                day_out -= days_check;
                month_out++;
                if (month_out > 12) {
                    year_out++;
                    month_out = 1;
                }
            } else {
                ready = true;
            }
        }
        Date output(year_out, month_out, day_out); */
        Date output(1, 1, 1);
        return output;
    }

    int DaysLeft(const Date& date) {
        /* int output = 0;
        int abs_now = 0;
        int abs_then = 0;

        abs_now = 365 * this->year + this->year/4 - this->year/100 +
                  this->year/400 + (153*this->month - 457)/5 + this->day - 306;
        abs_then = 365 * date.year + date.year/4 - date.year/100 + date.year/400
                + (153*date.month - 457)/5 + date.day - 306;
        output = abs_then - abs_now; */
        return 404;
    }
};