import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

public class Main {
	public static void main(String[] args) {
		LocalDate date = LocalDate.now(ZoneId.of("Asia/Kolkata"));
		DateTimeFormatter dtf = new DateTimeFormatterBuilder()
								.appendText(ChronoField.DAY_OF_MONTH, ordinalMap())
								.appendPattern(" MMM. uuuu")
								.toFormatter(Locale.ENGLISH);
		String output = date.format(dtf);
		System.out.println(output);
	}

	static Map<Long, String> ordinalMap() {
		String[] suffix = { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
		Map<Long, String> map = new HashMap<>();

		for (int i = 1; i <= 31; i++)
			map.put((long) i, String.valueOf(i) + suffix[(i > 3 && i < 21) ? 0 : (i % 10)]);

		return map;
	}
}