import java.util.*;
	
public class HolidaySked {
	BitSet sked;
	
	public HolidaySked() {
		sked = new BitSet(365);  //bit set with 365 positions, each set initially to 0;
		int[] holiday = {1,20,43,48,53,115,131,146,165,166,185,244,286,315,327,359};
		for (int i=0; i<holiday.length; i++) {
			addHoliday(holiday[i]);
		}
	}
	
	public void addHoliday(int dayToAdd) {
		sked.set(dayToAdd);	  //set method is called to set bit to 1
	}
	
	public boolean isHoliday(int dayToCheck) {
		boolean result = sked.get(dayToCheck);  //get method return true if bit value is 1
		return result;
	}
	
	public static void main (String[] arguments) {
		HolidaySked cal = new HolidaySked();
		if (arguments.length > 0) {
			try {
				int whichDay = Integer.parseInt(arguments[0]);
				if (cal.isHoliday(whichDay)) {
					System.out.println("Day number "+ whichDay + " is a holiday.");
			} else {
					System.out.println("Day number "+ whichDay + " is not a holiday.");
			}
			} catch (NumberFormatException nfe) {
				System.out.println("Error: " + nfe.getMessage());
		}
		}
	}
}
