При проверке код не проходит по 4-ому требованию: "Если список не упорядочен по возрастанию длины строки, то нужно вывести на экран порядковый номер первого элемента, нарушающего такую упорядоченность (нумерация начинается с 1)". Но в каком бы порядке я не ввел строки с клавиатуры, вывод всегда пуст. Последнее время у меня совсем не клеится с задачами по ArrayList, я уже не первый раз прошу здесь помощи по этой теме. Уже даже начинаю сомневаться в своих интеллектуальных способностях :( Не хотелось бы вставать на кривую дорожку копипаста. Пожалуйста, помогите найти ошибку и дайте совет.
Условие:

1. Введи с клавиатуры 10 слов в список строк.
2. Определить, является ли список упорядоченным по возрастанию длины строки.
3. В случае отрицательного ответа вывести на экран индекс первого элемента, нарушающего такую упорядоченность.

Требования:

1. Объяви переменную типа список строк и сразу проинициализируй ee.
2. Считай 10 строк с клавиатуры и добавь их в список.
3. Если список упорядочен по возрастанию длины строки, то ничего выводить не нужно.
4. Если список не упорядочен по возрастанию длины строки, то нужно вывести на экран порядковый номер первого
элемента, нарушающего такую упорядоченность (нумерация начинается с 1).

Мое решение:

public class Solution {
    public static void main(String[] args) throws IOException {
        ArrayList<String> words = new ArrayList<>();
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));

        for(int i = 0; i < 10; i++) words.add(r.readLine());

        for(int i = 0; i < words.size()-1; )
        {
            if(words.get(i).length() < words.get(i+1).length())
                i++;
            else
                System.out.println(words.indexOf(i)+1);
                break;
        }
    }
}