using System;
public class Test
{
public static void Main() {}
}
public interface ITree<TSelf, TItem> where TSelf : ITree<TSelf, TItem>
{
TSelf Union(TSelf other);
}
public class AvlTree<TItem> : ITree<AvlTree<TItem>, TItem> {
public AvlTree<TItem> Union(AvlTree<TItem> other) {
return other;
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewogICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKSB7fSAgIAp9CgpwdWJsaWMgaW50ZXJmYWNlIElUcmVlPFRTZWxmLCBUSXRlbT4gd2hlcmUgVFNlbGYgOiBJVHJlZTxUU2VsZiwgVEl0ZW0+CnsKICAgIFRTZWxmIFVuaW9uKFRTZWxmIG90aGVyKTsKfQoKcHVibGljIGNsYXNzIEF2bFRyZWU8VEl0ZW0+IDogSVRyZWU8QXZsVHJlZTxUSXRlbT4sIFRJdGVtPiB7CiAgICBwdWJsaWMgQXZsVHJlZTxUSXRlbT4gVW5pb24oQXZsVHJlZTxUSXRlbT4gb3RoZXIpIHsKICAgICAgICByZXR1cm4gb3RoZXI7CiAgICB9Cn0=