What will happen when you run the following code snippet?

import java.io.*;
import java.util.*;
public class X
{
    public static void p(String s) {System.out.println(s);}

    public static void main(final String[] args)
    {
        final Object al = new ArrayList();
        p(al instanceof List         ? "List" :         "");
        p(al instanceof AbstractList ? "AbstractList" : "");
        p(al instanceof Dictionary   ? "Dictionary" :   "");
        p(al instanceof Collection   ? "Collection" :   "");
        p(al instanceof Cloneable    ? "Cloneable" :    "");
        p(al instanceof Set          ? "Set" :          "");
        p(al instanceof RandomAccess ? "RandomAccess" : "");
        p(al instanceof Serializable ? "Serializable" : "");
    }
}
A) Output: "List AbstractList Dictionary Collection Cloneable RandomAccess Serializable"
B) Output: "List AbstractList Collection Cloneable Serializable"
C) Output: "List AbstractList Collection Cloneable Set RandomAccess Serializable"
D) Output: "List AbstractList Collection RandomAccess Serializable"
E) Output: "List AbstractList Collection Cloneable RandomAccess Serializable"
F) Output: "List AbstractList Collection Cloneable Set Serializable"