#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
#define ISYEAR(x) ((x%100 !=0 && x%4 ==0)|| (x%400==0))?1:0
int dayOfMonth[13][2]=
{
0,0,
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31
};//每月的天数
class Date{
public:
int Day;
int Month;
int Year;
//计算下一天的日期
void nextDay()
{
Day++;
if(Day > dayOfMonth[Month][ISYEAR(Year)])
{
Day = 1;
Month ++;
if(Month >12)
{
Month =1;
Year ++;
}
}
}
};
char monthNames[13][10]=
{
"",
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
char weekNames[7][10]=
{
"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"
};
int checkMonth(char*month)
{
int i;
for(i =1; i<=12;i++)
{
if(!strcmp(monthNames[i],month)) break;
}
if(i <=12)
{
return i;
}
else
return 0;
}
int countWeekDay(int days)
{
int w;
w = (days%7+7) %7;
return w;
}
int buf[3001][13][32];
int main()
{
Date tmp;
tmp.Day =1;
tmp.Month =1;
tmp.Year = 0;
int cnt = 0;
while(tmp.Year <3001)
{
buf[tmp.Year][tmp.Month][tmp.Day] = cnt;
tmp.nextDay();
cnt++;
}
int d,y;
char month[10];
int m =0;
int days=0;//记录与今天相差的天数
while(cin>>d >> month>>y)
{
m = checkMonth(month);
days = buf[y][m][d]-buf[2014][3][23];
//cout << countWeekDay(days)<< endl;
int w = countWeekDay(days);
//cout << w <<endl;
cout << weekNames[w] <<endl;
}
return 0;
}
/**************************************************************
Problem: 1043
User: itswyy
Language: C++
Result: Accepted
Time:20 ms
Memory:6396 kb
****************************************************************/