Я не понимаю. Почему удаляется в задании 6 строк с помощью вот этого кода, а не четыре?
for (int i=0;i<M;i++){
list.add(list.get(0)); // и что значит ЭТО?
list.remove(0);
 }