Pokemon Dont Go - IndexOutOfBoundsException

Решавам задачата по по-различен начин от варианта на упражнението. Не мога да разреба защо когато искам да махна последния член на листа ми дава - IndexOutOfBoundsException.

Примерно, ако имам лист от 1,2,3,4,5 и дам да се махне 4 индекс (5) получавам IndexOutOfBoundsException: Index: 4, Size: 4

Това ми е кода

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class switchtrain {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        List<Integer> numbers = Arrays.stream(scanner.nextLine().split(" ")).map(Integer::valueOf).collect(Collectors.toList());

        int sum = 0;
        int input = Integer.parseInt(scanner.nextLine());
        while (numbers.size() >= 0) {

            int num = numbers.get(input);
            sum += num;
            numbers.remove(input);
            if (input > numbers.get(input)) {
                for (int j = 0; j < numbers.size(); j++) {
                    int a = numbers.get(j) - num;
                    numbers.set(j, a);
                }
            } else {
                for (int j = 0; j < numbers.size(); j++) {
                    int a = numbers.get(j) + num;
                    numbers.set(j, a);
                }
            }
            System.out.println(numbers);
            System.out.println(sum);
            input = Integer.parseInt(scanner.nextLine());


        }
    }
}