#include <iostream>
int min(int a, int b)
{
if (a < b) return a;
else return b;
}
char *resize(const char *str, unsigned size, unsigned new_size)
{
/* ... */
char * newstr = new char[new_size];
for (int i = 0; i < min(size, new_size); i++)
{
newstr[i] = str[i];
}
delete[] str;
return newstr;
}
char *getline()
{
char ch;
char * mass = new char[0];
int length = 0;
while (true)
{
ch = std::cin.get();
if (ch == NULL || ch == '\0') break;
if (ch == EOF) break;
mass = resize(mass, length, length + 1);
mass[length] = ch;
length++;
}
mass = resize(mass, length, length + 1);
mass[length] = '\0';
length++;
return mass;
}
int main()
{
char * str = getline();
std::cout << str << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1pbihpbnQgYSwgaW50IGIpCnsKCWlmIChhIDwgYikgcmV0dXJuIGE7CgllbHNlIHJldHVybiBiOwp9CgoKY2hhciAqcmVzaXplKGNvbnN0IGNoYXIgKnN0ciwgdW5zaWduZWQgc2l6ZSwgdW5zaWduZWQgbmV3X3NpemUpCnsKCS8qIC4uLiAqLwoJY2hhciAqIG5ld3N0ciA9IG5ldyBjaGFyW25ld19zaXplXTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbWluKHNpemUsIG5ld19zaXplKTsgaSsrKQoJewoJCW5ld3N0cltpXSA9IHN0cltpXTsKCX0KCWRlbGV0ZVtdIHN0cjsKCXJldHVybiBuZXdzdHI7Cn0KCmNoYXIgKmdldGxpbmUoKQp7CgljaGFyIGNoOwoJY2hhciAqIG1hc3MgPSBuZXcgY2hhclswXTsKCWludCBsZW5ndGggPSAwOwoJd2hpbGUgKHRydWUpCgl7CgkJY2ggPSBzdGQ6OmNpbi5nZXQoKTsKCQlpZiAoY2ggPT0gTlVMTCB8fCBjaCA9PSAnXDAnKSBicmVhazsKCQlpZiAoY2ggPT0gRU9GKSBicmVhazsKCQltYXNzID0gcmVzaXplKG1hc3MsIGxlbmd0aCwgbGVuZ3RoICsgMSk7CgkJbWFzc1tsZW5ndGhdID0gY2g7CgkJbGVuZ3RoKys7Cgl9CgltYXNzID0gcmVzaXplKG1hc3MsIGxlbmd0aCwgbGVuZ3RoICsgMSk7CgltYXNzW2xlbmd0aF0gPSAnXDAnOwoJbGVuZ3RoKys7CglyZXR1cm4gbWFzczsKfQoKaW50IG1haW4oKQp7CgljaGFyICogc3RyID0gZ2V0bGluZSgpOwoJc3RkOjpjb3V0IDw8IHN0ciA8PCBzdGQ6OmVuZGw7CgkKCXJldHVybiAwOwp9