using System;
class B {
private B() { }
}
class C: B {
class E: Exception { }
static C instance;
public static C Instance() {
try {
new C();
} catch(E) { }
GC.Collect();
GC.WaitForPendingFinalizers();
return instance;
}
static int Throw() {
throw new E();
}
C(): this(Throw()) { }
C(int i): this() { }
~C() {
instance = this;
}
}
static class D {
static void Main() {
Console.WriteLine(C.Instance().GetType());
}
}
dXNpbmcgU3lzdGVtOwoKY2xhc3MgQiB7CiAgICBwcml2YXRlIEIoKSB7IH0KfQoKY2xhc3MgQzogQiB7CiAgICBjbGFzcyBFOiBFeGNlcHRpb24geyB9CiAgICBzdGF0aWMgQyBpbnN0YW5jZTsKICAgIHB1YmxpYyBzdGF0aWMgQyBJbnN0YW5jZSgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBuZXcgQygpOwogICAgICAgIH0gY2F0Y2goRSkgeyB9CiAgICAgICAgR0MuQ29sbGVjdCgpOwogICAgICAgIEdDLldhaXRGb3JQZW5kaW5nRmluYWxpemVycygpOwogICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgIH0KICAgIHN0YXRpYyBpbnQgVGhyb3coKSB7CiAgICAgICAgdGhyb3cgbmV3IEUoKTsKICAgIH0KICAgIEMoKTogdGhpcyhUaHJvdygpKSB7IH0KICAgIEMoaW50IGkpOiB0aGlzKCkgeyB9CiAgICB+QygpIHsKICAgICAgICBpbnN0YW5jZSA9IHRoaXM7CiAgICB9Cn0KCnN0YXRpYyBjbGFzcyBEIHsKICAgIHN0YXRpYyB2b2lkIE1haW4oKSB7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQy5JbnN0YW5jZSgpLkdldFR5cGUoKSk7CiAgICB9Cn0=