import java.io.*;
import java.util.*;public class myCalendar {
  PrintStream stream;
  final String[] MONTHSTRING = {
      "JANURAY", "FEBUARY", "MATCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST",
      "SEPTEMBER", "OCTOBER", "NOVENBER", "DECEMBER", };
  String WEEKDAY[] = {
      "SUNDAY:   ", "MONDAY:   ", "TUESDAY:  ", "WEDNESDAY:", "THURSDAY: ",
      "FRIDAY:   ", "SATURDAY: "};  public myCalendar() {
  }  public void PrintCalendar() {
    System.out.println("\t\t2 0 0 8");    Calendar c = Calendar.getInstance();
    c.set(2008, 0, 1, 0, 0, 0);    while (c.get(Calendar.YEAR) == 2008) {
      if (c.get(Calendar.DATE) == 1) {
        stream.println("\n\n\t\t" + MONTHSTRING[c.get(Calendar.MONTH)]);
        Title();
        int i = 5 * (c.get(Calendar.DAY_OF_WEEK) - 1);
        for (int j = 1; j <= i; j++) {
          stream.print(" ");
        }
      }
      String s = "       " + c.get(Calendar.DATE);
      stream.print(s.substring(s.length() - 5, s.length()));
      if (c.get(Calendar.DAY_OF_WEEK) == 7) {
        stream.println();
      }
      int theDate = c.get(Calendar.DATE);
      int theDateOfWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
      if (theDate == 7) {
        theDate = 0;
      }
      if (theDate == theDateOfWeek) {
        WEEKDAY[theDateOfWeek] = WEEKDAY[theDateOfWeek] + "  " +
            c.getTime().toString();
      }
      c.add(Calendar.DATE, 1);
    }
    stream.println("\n\n");
  }  public void PrintSameDay() {
    for (int i = 0; i < 7; i++) {
      stream.println(WEEKDAY[i]);
    }
  }  void Title() {
    stream.println("  Sun  Mon  Tue  Wed  Thu  Fri  Sta");
  }  public static void main(String[] args) {
    myCalendar a = new myCalendar();
    a.stream = System.out; //指定输出流
    a.PrintCalendar();
    a.PrintSameDay();
  }
}