import java.util.Scanner;
public class DisplayCalendar{
public static void main(String[] args){
int n,i;
String[] months = {"January","February","March","April","May","June","July","August","September","October","November","December"};
Scanner scanner = new Scanner(System.in);
System.out.print("Please input a year: ");
int year = scanner.nextInt();
System.out.print("Please input the first day: ");
int firstDay = scanner.nextInt();
String[] result = callday(firstDay,year);
for(i = 0; i < 12; i++){
System.out.println(" "+months[i]+" "+year);
System.out.print("____________________________________\n");
System.out.print("Sun Mon Tue Wed Thu Fri Sat\n");
System.out.println(result[i]+"\n");
}
}
public static String[] callday(int num1, int num2){
String[] result = new String[12];
int firstDay = num1;
int year = num2;
int n,day,init,i;
init = firstDay;
for(n = 0; n < 12; n++){
result[n] = " ";
for(i = 0; i < init%7; i++)
result[n] += " ";
if(n != 1){
if(n == 0 || n == 2 || n == 4 || n == 6 || n == 7 || n == 9 || n == 11){
for(day = 1; day <= 31; day++){
init++;
result[n] += day;
if(day <= 7)
result[n] += " ";
else
result[n] += " ";
if(init%7 == 0)
result[n] += "\n";
}
} else {
for(day = 1; day <= 30; day++){
init++;
result[n] += day;
if(day <= 7)
result[n] += " ";
else
result[n] += " ";
if(init%7 == 0)
result[n] += "\n";
}
}
} else {
if(year%4 == 0 && year%100 != 0){
for(day = 1; day <= 29; day++){
init++;
result[n] += day;
if(day <= 7)
result[n] += " ";
else
result[n] += " ";
if(init%7 == 0)
result[n] += "\n";
}
}else if(year%400 == 0){
for(day = 1; day <= 29; day++){
init++;
result[n] += day;
if(day <= 7)
result[n] += " ";
else
result[n] += " ";
if(init%7 == 0)
result[n] += "\n";
}
}else{
for(day = 1; day <= 28; day++){
init++;
result[n] += day;
if(day <= 7)
result[n] += " ";
else
result[n] += " ";
if(init%7 == 0)
result[n] += "\n";
}
}
}
}
return result;
}
}