Неверно считает минимальную длину и, соответственно даёт неверный вывод, всё остальное работает нормально: public class Solution { public static void main(String[] args) throws Exception { int min = 0, max = 0, mix; ArrayList<String> strings = new ArrayList<>(); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); strings.add(0, reader.readLine()); mix = strings.get(0).length(); for (int i = 0; i < 9; i++) strings.add(reader.readLine()); for (int i = 0; i < strings.size(); i++) { if (strings.get(i).length() < mix) min = strings.get(i).length(); else if (strings.get(i).length() > mix) max = strings.get(i).length(); } System.out.println(min); System.out.println(max); for (int i = 1; i < strings.size(); i++) if ((strings.get(i).length() == min) || (strings.get(i).length() == max)) { System.out.println(strings.get(i)); break; } } }