public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayList<String> list = new ArrayList<String>(); while (true) { String s = reader.readLine(); if (s.isEmpty()) break; list.add(s); } ArrayList<String> listUpperCase = new ArrayList<String>(); for (int i = 0; i < list.size(); i++) { String s = list.get(i); listUpperCase.add(s.toUpperCase()); } for (int i = 0; i < list.size(); i++) { if (list.get(i).length()%2==0) { list.add(i+1, list.get(i)+" "+list.get(i)); // если делать так то программа выдаёт шесть значений вместо двух. почему так происходит? list.remove(i); // например ввод: "куку" вывод: "куку куку куку куку куку куку" } if (list.get(i).length()%2!=0) { System.out.println(list.get(i)+" "+list.get(i)+" "+list.get(i)); // если делать так то программа проходит! } } } }