using System;
public class Student{}
public class Teacher : Student{}
public class GenericClassWithTypeConstraints<T1, T2>
where T1 : Student
where T2 : Teacher
{}
class Test {
static void Main() {
var obj = new GenericClassWithTypeConstraints<Teacher, Teacher>();
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFN0dWRlbnR7fQoKcHVibGljIGNsYXNzIFRlYWNoZXIgOiBTdHVkZW50e30KCnB1YmxpYyBjbGFzcyBHZW5lcmljQ2xhc3NXaXRoVHlwZUNvbnN0cmFpbnRzPFQxLCBUMj4KICAgIHdoZXJlIFQxIDogU3R1ZGVudAogICAgd2hlcmUgVDIgOiBUZWFjaGVyCnt9CgpjbGFzcyBUZXN0IHsKICAgIHN0YXRpYyB2b2lkIE1haW4oKSB7CiAgICAgICAgdmFyIG9iaiA9IG5ldyBHZW5lcmljQ2xhc3NXaXRoVHlwZUNvbnN0cmFpbnRzPFRlYWNoZXIsIFRlYWNoZXI+KCk7CiAgICB9Cn0=