#include <cstdio>
template <typename typed> typed f() { return 2.7; }
template <> int f() { return 5; }
template <> double f() { return 2.3; }
struct z {
template <typename T> operator T() { return f<T>(); }
};
int a = z();
float b = z();
int main(void) { return !printf("%d %f", a, b); }
I2luY2x1ZGUgPGNzdGRpbz4KIAp0ZW1wbGF0ZSA8dHlwZW5hbWUgdHlwZWQ+IHR5cGVkIGYoKSB7IHJldHVybiAyLjc7IH0KdGVtcGxhdGUgPD4gaW50IGYoKSB7IHJldHVybiA1OyB9CnRlbXBsYXRlIDw+IGRvdWJsZSBmKCkgeyByZXR1cm4gMi4zOyB9CiAKc3RydWN0IHogewoJdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IG9wZXJhdG9yIFQoKSB7IHJldHVybiBmPFQ+KCk7IH0KfTsKIAppbnQgYSA9IHooKTsKZmxvYXQgYiA9IHooKTsKIAogCmludCBtYWluKHZvaWQpIHsgcmV0dXJuICFwcmludGYoIiVkICVmIiwgYSwgYik7IH0=