#include <iostream>
#include <string>
template <typename S>
void Show (const S& s, size_t n) {
while (n-- != 0)
std::cout << s << std::endl;
}
struct big {
std::string s;
big(const std::string& s):s(s){}
};
std::ostream& operator<<(std::ostream& os, const big& b) {
return os << b.s;
}
int main() {
std::string s{"string"};
big b{"big"};
Show (s, 2);
Show (b, 3);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFM+CnZvaWQgU2hvdyAoY29uc3QgUyYgcywgc2l6ZV90IG4pIHsKCXdoaWxlIChuLS0gIT0gMCkKCSAgc3RkOjpjb3V0IDw8IHMgPDwgc3RkOjplbmRsOwp9CgpzdHJ1Y3QgYmlnIHsKICBzdGQ6OnN0cmluZyBzOwogIGJpZyhjb25zdCBzdGQ6OnN0cmluZyYgcyk6cyhzKXt9Cn07CgpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgYmlnJiBiKSB7CglyZXR1cm4gb3MgPDwgYi5zOwp9CgppbnQgbWFpbigpIHsKCXN0ZDo6c3RyaW5nIHN7InN0cmluZyJ9OwoJYmlnIGJ7ImJpZyJ9OwoJU2hvdyAocywgMik7CglTaG93IChiLCAzKTsKfQ==