import java.util.ArrayList;
import java.util.Collection;
class C<T> {
void foo1(Collection<? extends T> src) {
T t = src.iterator().next();
}
void foo2(ArrayList<? extends T> src) {
T t = src.iterator().next();
}
void foo3(Collection<? super T> dst, T t) {
dst.add(t)
}
int foo4(Comparable<? super T> comparable, T t) {
return comparable.compareTo(t);
}
void foo5(Collection<?> w) {
}
}