#include <algorithm>
#include <iostream>
template < class T, class U, class V >
struct str
{
T t;
U u;
V v;
};
template < class T, class U >
using str2 = str < T, int, U >;
template < class T >
void foo(T t)
{
std::cout << t.t << " " << t.u << " " << t.v << "\n";
}
int main()
{
str<int,char,const char*> s1 = {34, 'c', "string"};
str2<float,char> s2 = {6.9f, 13, 'P'};
foo(s1);
foo(s2);
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPCBjbGFzcyBULCBjbGFzcyBVLCBjbGFzcyBWID4Kc3RydWN0IHN0cgp7CiAgICBUIHQ7CiAgICBVIHU7CiAgICBWIHY7Cn07Cgp0ZW1wbGF0ZSA8IGNsYXNzIFQsIGNsYXNzIFUgPgp1c2luZyBzdHIyID0gc3RyIDwgVCwgaW50LCBVID47Cgp0ZW1wbGF0ZSA8IGNsYXNzIFQgPgp2b2lkIGZvbyhUIHQpCnsKICAgIHN0ZDo6Y291dCA8PCB0LnQgPDwgIiAiIDw8IHQudSA8PCAiICIgPDwgdC52IDw8ICJcbiI7Cn0KCgppbnQgbWFpbigpCnsKICAgIHN0cjxpbnQsY2hhcixjb25zdCBjaGFyKj4gczEgPSB7MzQsICdjJywgInN0cmluZyJ9OwogICAgc3RyMjxmbG9hdCxjaGFyPiBzMiA9IHs2LjlmLCAxMywgJ1AnfTsKICAgIAogICAgZm9vKHMxKTsKICAgIGZvbyhzMik7CiAgICAKICAgIHJldHVybiAwOwp9