#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); }