import org.jetbrains.annotations.NotNull;

interface J<A> extends T<A> {
    @Override
    <B> int foofoofoo(@NotNull U<A> a, B b);
}

abstract class J1<X> implements J<U<X>> {
    @Override
    public <C> int foofoofoo(@NotNull U<U<X>> xu, C c) {
        throw new UnsupportedOperationException();
    }
}

abstract class J2 extends J1<String> {
    @Override
    public <C> int foofoofoo(@NotNull U<U<String>> xu, C c) {
        throw new UnsupportedOperationException();
    }
}