import java.io.*;
import java.lang.*;
import java.text.*;
import java.util.*;

class Ideone
{
	public static int dayOfWeek(int year, int month, int day)
	{
		day += month < 3 ? year-- : year - 2;
		return ((((23 * month) / 9) + day + 4 + (year / 4)) - (year / 100) + (year / 400)) % 7;
    }
	
	public static void main (String[] args) throws java.lang.Exception
	{
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		
		Calendar start = Calendar.getInstance();
		start.setTime(df.parse("1900-01-01"));
		Calendar end = Calendar.getInstance();
		end.setTime(df.parse("2020-01-01"));

		for (Date date = start.getTime(); start.before(end); start.add(Calendar.DATE, 1), date = start.getTime())
		{
			int expected = date.getDay();
			int actual = dayOfWeek(date.getYear() + 1900, date.getMonth() + 1, date.getDate());
			if (expected != actual)
			{
				throw new RuntimeException("expected: " + expected + ", actual: " + actual);
			}
		}
	}
}