не могу понять как устранить ошибку, подскажите пожалуйста
package com.javarush.task.task07.task0712;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самые-самые
*/
public class Solution {
public static void main(String[] args) throws IOException {
//Инициализация
ArrayList<String>list = new ArrayList<String>();
String longestWord = "";
String shortestWord = "";
int lon = 0;
int sho = 0;
//Считывание строк
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 10; i++){
list.add(reader.readLine());
}
//Поиск самого длинного числа
for (int i = 0; i < list.size(); i++){
if(longestWord.length() < list.get(i).length()){
longestWord = list.get(i);
}
}
for (int i = 0; i < list.size(); i++){
if(longestWord.length() == list.get(i).length()){
lon = i;//помещаю порядковый номер в переменную
}
}
//поиск самого короткого числа
for (int i = 0; i < list.size(); i++){
if(i == 0 && shortestWord.equals("")){
shortestWord = list.get(0);
}
for ( i = 0; i < list.size(); i++){
if(list.get(i).length() < shortestWord.length()){
shortestWord = list.get(i);
}
}
for ( i = 0; i < list.size(); i++){
if(shortestWord.length() == list.get(i).length()){
sho = i;//помещаю порядковый номер в переменную
}
}
//Сравнение номеров переменных.
if (sho < lon){
System.out.println(shortestWord);
}else{
System.out.println(longestWord);
}
}
}
}