using System;
struct Dt {
byte v;
public Dt(byte v) {
if (v > 9) throw new ArgumentException();
this.v = v; }
public static implicit operator byte(Dt d) {
Console.Write( "1 - ");
return d.v; }
public static implicit operator short(Dt d) {
Console.Write( "2 - " ); return d.v; } }
class Test {
public static void Main() {
Dt d = new Dt(9);
byte b = d;
short c = d;
Console.WriteLine("{0} {1}",b,c);
} }
dXNpbmcgU3lzdGVtOwpzdHJ1Y3QgRHQgewpieXRlIHY7CnB1YmxpYyBEdChieXRlIHYpIHsKaWYgKHYgPiA5KSB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oKTsKdGhpcy52ID0gdjsgfQpwdWJsaWMgc3RhdGljIGltcGxpY2l0IG9wZXJhdG9yIGJ5dGUoRHQgZCkgewpDb25zb2xlLldyaXRlKCAiMSAtICIpOwpyZXR1cm4gZC52OyB9CnB1YmxpYyBzdGF0aWMgaW1wbGljaXQgb3BlcmF0b3Igc2hvcnQoRHQgZCkgewpDb25zb2xlLldyaXRlKCAiMiAtICIgKTsgcmV0dXJuIGQudjsgfSB9CmNsYXNzIFRlc3QgewpwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpIHsKRHQgZCA9IG5ldyBEdCg5KTsKYnl0ZSBiID0gZDsKc2hvcnQgYyA9IGQ7CkNvbnNvbGUuV3JpdGVMaW5lKCJ7MH0gezF9IixiLGMpOwp9IH0=