#include <iostream>
#include <vector>
using namespace std;
// Ref: http://w...content-available-to-author-only...s.com/reference/iterator/istreambuf_iterator/
// Ref: http://w...content-available-to-author-only...s.com/reference/istream/istream/sentry/
// Ref: http://w...content-available-to-author-only...s.com/reference/istream/istream/
istream& getline(istream& is, vector<char> &buffer)
{
std::istream::sentry s(is);
if (s)
{
std::istreambuf_iterator<char> it(is);
std::istreambuf_iterator<char> end;
const size_t grow = 64;
buffer.reserve(grow);
while (it != end && *it != '\n')
{
if (buffer.size() == buffer.capacity() - 1)
{
buffer.reserve(buffer.size() + grow);
}
buffer.push_back(*it++);
}
buffer.push_back('\0');
}
return is;
}
int main()
{
vector<char> line;
while (getline(std::cin, line))
{
if (!line.empty())
{
cout << line.data() << endl;
line.clear();
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gUmVmOiBodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ucy5jb20vcmVmZXJlbmNlL2l0ZXJhdG9yL2lzdHJlYW1idWZfaXRlcmF0b3IvCi8vIFJlZjogaHR0cDovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnMuY29tL3JlZmVyZW5jZS9pc3RyZWFtL2lzdHJlYW0vc2VudHJ5LwovLyBSZWY6IGh0dHA6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5zLmNvbS9yZWZlcmVuY2UvaXN0cmVhbS9pc3RyZWFtLwoKaXN0cmVhbSYgZ2V0bGluZShpc3RyZWFtJiBpcywgdmVjdG9yPGNoYXI+ICZidWZmZXIpCnsKCXN0ZDo6aXN0cmVhbTo6c2VudHJ5IHMoaXMpOwoJaWYgKHMpCgl7CgkJc3RkOjppc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXI+IGl0KGlzKTsKCQlzdGQ6OmlzdHJlYW1idWZfaXRlcmF0b3I8Y2hhcj4gZW5kOwoJCgkJY29uc3Qgc2l6ZV90IGdyb3cgPSA2NDsKCQlidWZmZXIucmVzZXJ2ZShncm93KTsKCQoJCXdoaWxlIChpdCAhPSBlbmQgJiYgKml0ICE9ICdcbicpIAoJCXsKCQkJaWYgKGJ1ZmZlci5zaXplKCkgPT0gYnVmZmVyLmNhcGFjaXR5KCkgLSAxKSAKCQkJewoJCQkJYnVmZmVyLnJlc2VydmUoYnVmZmVyLnNpemUoKSArIGdyb3cpOwoJCQl9CgkJCgkJCWJ1ZmZlci5wdXNoX2JhY2soKml0KyspOwoJCX0KCQlidWZmZXIucHVzaF9iYWNrKCdcMCcpOwoJfQoKCXJldHVybiBpczsKfQoKaW50IG1haW4oKSAKewoJdmVjdG9yPGNoYXI+IGxpbmU7Cgl3aGlsZSAoZ2V0bGluZShzdGQ6OmNpbiwgbGluZSkpCgl7CgkJaWYgKCFsaW5lLmVtcHR5KCkpIAoJCXsKCQkJY291dCA8PCBsaW5lLmRhdGEoKSA8PCBlbmRsOwoJCQlsaW5lLmNsZWFyKCk7CgkJfQoJfQoJCglyZXR1cm4gMDsKfQo=