import java.util.regex.*;

public class Upper {
	private final static Pattern WORD = Pattern.compile("(\\p{L})(\\p{L}*)");

	public static String toUpper1st(String s) {
		Matcher m = WORD.matcher(s);
		StringBuffer sb = new StringBuffer();
		while (m.find()) {
			String rep = m.group(1).toUpperCase() + m.group(2);
			m.appendReplacement(sb, rep);		
		}
		m.appendTail(sb);
		return sb.toString();
	}
	
	public static void main(String[] args) {
		System.out.println(toUpper1st("LL day and night."));
		System.out.println(toUpper1st("日本語abc漢字"));
		System.out.println(toUpper1st("αβγ"));
		System.out.println(toUpper1st("a=b+c"));
		System.out.println(toUpper1st("één"));
	}
}