Consider the following code snippet:
```
ArrayList<String> names = new ArrayList<String>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
names.add("David");
names.add(2, "Eve");
names.remove(1);
names.add("Frank");
names.remove(0);
System.out.println(names);
```
What is the output of the code snippet?