Здравствуйте. Я не могу понять, почему мой код не подходит под требования 2 и 3 пунктов, хотя всё правильно. Помогите, пожалуйста. (Прошу прощения за то, что в программе очень всё подробно пишу, и делаю много лишних скоб, как например для if)
public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer> list = new ArrayList<Integer>();

        for(int i = 0; i < 20; i++)
        {
            list.add(Integer.parseInt(reader.readLine()));
        }

        ArrayList<Integer> na2 = new ArrayList<Integer>();
        ArrayList<Integer> na3 = new ArrayList<Integer>();
        ArrayList<Integer> ostalnye = new ArrayList<Integer>();

        for(int i = 0; i < list.size(); i++)
        {
            Integer x = list.get(i);
            if(x % 3 == 0)
            {
                na3.add(x);
            }
        }

        for(int i = 0; i < list.size(); i++)
        {
            Integer x = list.get(i);
            if(x % 2 == 0)
            {
                na2.add(x);
            }
        }

        for(int i = 0; i < list.size(); i++)
        {
            Integer x = list.get(i);
            if(x % 2 != 0 && x % 3 != 0)
            {
                ostalnye.add(x);
            }
        }

        printList(na3);
        System.out.println("—————————————");
        printList(na2);
        System.out.println("—————————————");
        printList(ostalnye);
    }

    public static void printList(ArrayList<Integer> list) {
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}