#include <bits/stdc++.h>
using namespace std;
map<string,int>day,month;
vector<int> helper(int d,int m,int y){
if (d > 0 && d < 28) {
d += 1;
}
if (d == 28) {
if (m == 2) {
if ((y % 400 == 0) || (y % 100 != 0 || y % 4 == 0)) {
d = 29;
} else {
d = 1;
m = 3;
}
} else {
d += 1;
}
}
if (d == 29) {
if (m == 2) {
d = 1;
m = 3;
} else {
d += 1;
}
}
if (d == 30) {
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
d += 1;
} else {
d = 1;
m += 1;
}
}
if (d == 31) {
d = 1;
if (m == 12) {
y += 1;
m = 1;
} else {
m += 1;
}
}
return {d,m,y};
}
vector<int> helper2(int d,int m,int y){
return {};
}
struct date{
int date;
string currDay;
string currMonth;
int year;
};
string next(date d){
int date = d.date;
int mon = month[d.currMonth];
int year = d.year;
vector<int> v = helper(date,mon,year);
string nextday="",nextmonth="";
for(auto i:day)if(i.second==(day[d.currDay]+1)%7)nextday=i.first;
for(auto i:month)if(i.second==v[1])nextmonth=i.first;
cout<<nextday<<","<<v[0]<<" "<<nextmonth<<" "<<v[2]<<endl;
return "";
}
string prev(date d){
return "";
}
int main (){
day["Mon"]=1;
day["Tue"]=2;
day["Wed"]=3;
day["Thu"]=4;
day["Fri"]=5;
day["Sat"]=6;
day["Sun"]=0;
month["Jan"]=1;
month["Feb"]=2;
month["March"]=3;
month["April"]=4;
month["May"]=5;
month["June"]=6;
month["July"]=7;
month["Aug"]=8;
month["Sep"]=9;
month["Oct"]=10;
month["Nov"]=11;
month["Dec"]=12;
date d;
d.currDay="Tue",d.date=21,d.currMonth="March",d.year=2023;
next(d);
return 0;
}