import java.math.*;
class Ideone
{
public static void main
(String[] args
) { MM mm3 = mm1.add(mm2);
System.
out.
println(mm3.
getValue()); }
static class Unit<T extends Unit<T>> {
this.value = value;
}
return value;
}
// First Arithmetic operation
public <U extends Unit<U>> U add(U measurement) {
value = value.add(measurement.getValue());
return (U)this;
}
}
static class MM extends Unit<MM> {
super(value);
}
}
}
aW1wb3J0IGphdmEubWF0aC4qOwoKY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB7CgkJTU0gbW0xID0gbmV3IE1NKEJpZ0RlY2ltYWwuT05FKTsKICAgICAgICBNTSBtbTIgPSBuZXcgTU0oQmlnRGVjaW1hbC5URU4pOwogICAgICAgIE1NIG1tMyA9IG1tMS5hZGQobW0yKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obW0zLmdldFZhbHVlKCkpOwoJfQoKc3RhdGljIGNsYXNzIFVuaXQ8VCBleHRlbmRzIFVuaXQ8VD4+IHsKICAgIEJpZ0RlY2ltYWwgdmFsdWU7CgogICAgcHVibGljIFVuaXQoQmlnRGVjaW1hbCB2YWx1ZSkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgIH0KCiAgICBwdWJsaWMgQmlnRGVjaW1hbCBnZXRWYWx1ZSgpIHsKICAgICAgICByZXR1cm4gdmFsdWU7ICAKICAgIH0KCiAgICAvLyBGaXJzdCBBcml0aG1ldGljIG9wZXJhdGlvbgogICAgcHVibGljIDxVIGV4dGVuZHMgVW5pdDxVPj4gVSBhZGQoVSBtZWFzdXJlbWVudCkgewogICAgICAgIHZhbHVlID0gdmFsdWUuYWRkKG1lYXN1cmVtZW50LmdldFZhbHVlKCkpOwogICAgICAgIHJldHVybiAoVSl0aGlzOwogICAgfQp9CnN0YXRpYyBjbGFzcyBNTSBleHRlbmRzIFVuaXQ8TU0+IHsKICAgIHB1YmxpYyBNTShCaWdEZWNpbWFsIHZhbHVlKSB7CiAgICAgICAgc3VwZXIodmFsdWUpOwogICAgfQp9Cn0=