Difficult Pattern In Java