-     #include <iostream> 
-     #include <complex> 
-     #include <type_traits> 
-   
-     using namespace std; 
-   
-     double get_real(double n) { return n; } 
-   
-     double get_real(const std::complex<double>& n) { return n.real(); } 
-   
-     template <typename T> 
-     std::complex<double> f(T n) 
-     { 
-         if (std::is_same<T, std::complex<double>>::value) 
-             return n * std::complex<double>{1, -1} + get_real(n); 
-         else 
-             return -n; 
-     } 
-   
-   
-     int main() 
-     { 
-     	std::cout << f(std::complex<double>{10, 10}) << '\n'; 
-     	std::cout << f(10.0) << '\n'; 
-     } 
-   
				ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxjb21wbGV4PgogICAgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogICAgCiAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOwogICAgCiAgICBkb3VibGUgZ2V0X3JlYWwoZG91YmxlIG4pIHsgcmV0dXJuIG47IH0KCiAgICBkb3VibGUgZ2V0X3JlYWwoY29uc3Qgc3RkOjpjb21wbGV4PGRvdWJsZT4mIG4pIHsgcmV0dXJuIG4ucmVhbCgpOyB9CgogICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICBzdGQ6OmNvbXBsZXg8ZG91YmxlPiBmKFQgbikKICAgIHsKICAgICAgICBpZiAoc3RkOjppc19zYW1lPFQsIHN0ZDo6Y29tcGxleDxkb3VibGU+Pjo6dmFsdWUpCiAgICAgICAgICAgIHJldHVybiBuICogc3RkOjpjb21wbGV4PGRvdWJsZT57MSwgLTF9ICsgZ2V0X3JlYWwobik7CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gLW47CiAgICB9CiAgICAKICAgIAogICAgaW50IG1haW4oKQogICAgewogICAgCXN0ZDo6Y291dCA8PCBmKHN0ZDo6Y29tcGxleDxkb3VibGU+ezEwLCAxMH0pIDw8ICdcbic7CiAgICAJc3RkOjpjb3V0IDw8IGYoMTAuMCkgPDwgJ1xuJzsKICAgIH0K