#include <bits/stdc++.h>
using namespace std;

int BSearch(int const *arr, int Num)
{
    int low = 0, high = 11;
    int mid = (low + high) / 2;
    while (low <= high)
    {
        if (Num >= arr[mid] && Num < arr[mid + 1])
            return mid;
        else if (Num > arr[mid])
            low = mid + 1;
        else
            high = mid - 1;
        mid = (high + low) / 2;
    }
    return -1;
}

/**
 * @brief 此处核心的思路是
 * 将每个月之前过了多少天给计算出来
 * 如果扣除本月之前的所有天数,就能得到几号
 * 我们可以使用简单遍历,从左向右,逐个查找Num第一个大于等于此数组的位置
 * 此处使用了折半查找
 * @param Y 年数
 * @param Num 今年第几天
 * @param M 月数,引用
 * @param D 天数,引用
 */
void IdentifyMandD(int Y, int Num, int &M, int &D)
{
    int isRunNian = 0;
    if ((!(Y % 4) && Y % 100) || !(Y % 400))
        isRunNian = 1;
    int BeforeThisMonth[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
    if (isRunNian && Num > 60)
        Num--;
    M = BSearch(BeforeThisMonth, Num) + 1;
    D = Num - BeforeThisMonth[M - 1];
}

void PrintYandMandD(int Y, int M, int D)
{
    cout << Y << '-';
    if (M >= 10)
        cout << M;
    else
        cout << '0' << M;
    if (D >= 10)
        cout << '-' << D << endl;
    else
        cout << "-0" << D << endl;
} //此处注意'-0'是错误的,非常容易被忽视

int main()
{
    int Y, Num;
    int M, D;
    while (cin >> Y >> Num)
    {
        IdentifyMandD(Y, Num, M, D);
        PrintYandMandD(Y, M, D);
    }
    return 0;
}